diff --git a/src/com/sun/jna/CallbackReference.java b/src/com/sun/jna/CallbackReference.java index b452b9424..9533fb715 100644 --- a/src/com/sun/jna/CallbackReference.java +++ b/src/com/sun/jna/CallbackReference.java @@ -508,7 +508,7 @@ private static Pointer getFunctionPointer(Callback cb, boolean direct) { Map map = direct ? directCallbackMap : callbackMap; synchronized(pointerCallbackMap) { CallbackReference cbref = map.get(cb); - if (cbref == null) { + if (cbref == null || cbref.cbstruct == null) { cbref = new CallbackReference(cb, callingConvention, direct); map.put(cb, cbref); pointerCallbackMap.put(cbref.getTrampoline(),