Hello, tl;dr: what's the reason to get aNBExternalHandle even if you expect a MySuperHandle object from an nbCall? I am trying to build my first DLL wrapper with NativeBoost. I am having a problem that instead of returning a handle object (as I thought), my "primitive" throws NBExternalHandles at me. The API I am trying to wrap tries to be somewhat object oriented by (mostly) having a handle of some sort. My thinking was to attach all DLL primitives to the respective Handle Objects they take as a first parameter and go from there. Some workspace code: "Supplementary DLLs" Tm1ULibDllLibraryLoader loadLibrary. LibIbmCogEayLibraryLoader loadLibrary. SslIbmCogEayLibraryLoader loadLibrary. Log4CxxLibraryLoader loadLibrary. "DLL to wrap" TM1LibraryLoader loadTM1Library. t := TM1Api new. t tm1APIInitialize. hUser := t tm1SystemOpen. "Returns a proper 'TM1UHandle' object'" hUser tm1SystemAdminHostSet: 'localhost'. hPool1 := hUser tm1ValPoolCreate. "Returns NBExternalHandle" hPool1 inspect. hUser tm1SystemClose. t tm1APIFinalize. TM1Api>>#tm1SystemOpen <primitive: #primitiveNativeCall module: #NativeBoostPlugin> ^ self nbCall: #(TM1UHandle TM1SystemOpen(void)) TM1UHandle>>#tm1ValPoolCreate <primitive: #primitiveNativeCall module: #NativeBoostPlugin> ^ self nbCall: #(#TM1PHandle TM1ValPoolCreate ( TM1UHandle self ) ) Both, TM1UHandle class and TM1PHandle class have the method asNBExternalType: gen "use handle ivar to hold my instance (TM1x)" ^ NBExternalObjectType objectClass: self and are subclasses of object. What's my mistake? Can you tell with the information I provided? Best regards, Markus