Index: generic/nsf.c =================================================================== diff -u -r6c041dc5e75dfb3fc2c119ca2cfdc1824968f293 -re05bd93d5bb5e91556f7adc13df27d9c4970c77a --- generic/nsf.c (.../nsf.c) (revision 6c041dc5e75dfb3fc2c119ca2cfdc1824968f293) +++ generic/nsf.c (.../nsf.c) (revision e05bd93d5bb5e91556f7adc13df27d9c4970c77a) @@ -1900,13 +1900,14 @@ if (withUnknown != 0) { /*fprintf(stderr, "**** withUnknown 1 obj %s is shared %d\n", ObjStr(objPtr), Tcl_IsShared(objPtr));*/ + INCR_REF_COUNT(objPtr); result = NsfCallObjectUnknownHandler(interp, isAbsolutePath(objName) ? objPtr : NameInNamespaceObj(objName, CallingNameSpace(interp))); - if (likely(result == TCL_OK)) { /* Retry, but now, the last argument (withUnknown) has to be 0 */ result = GetClassFromObj(interp, objPtr, clPtr, 0); } + DECR_REF_COUNT(objPtr); /*fprintf(stderr, "... ::nsf::object::unknown for '%s', result %d cl %p\n", objName, result, cl);*/ }