Index: generic/nsf.c =================================================================== diff -u -r253e9e67adc09d0ade5c483f0eed9f49ba5ec185 -r6cb02ec6ee2b0bd8857ab9deda0dd6eff7265af5 --- generic/nsf.c (.../nsf.c) (revision 253e9e67adc09d0ade5c483f0eed9f49ba5ec185) +++ generic/nsf.c (.../nsf.c) (revision 6cb02ec6ee2b0bd8857ab9deda0dd6eff7265af5) @@ -12791,6 +12791,7 @@ Tcl_CallFrame *varFramePtr, *tclFramePtr = CallStackGetTclFrame(interp,(Tcl_CallFrame *)framePtr, 1); int pathLength, pathLength0 = 0, getPath = 1, unknownIndex; Tcl_Obj *pathObj = NsfMethodNamePath(interp, tclFramePtr, MethodName(objv[0])); + INCR_REF_COUNT(pathObj); /* * The "next" call could not resolve the unknown subcommand. At this @@ -12837,6 +12838,7 @@ getPath = 1; } else if (getPath == 1) { Tcl_Obj *pathObj1 = CallStackMethodPath(interp, varFramePtr); + INCR_REF_COUNT(pathObj1); int pathLength1; getPath = 0; @@ -12847,6 +12849,8 @@ } pathObj = pathObj1; pathLength = pathLength1; + } else { + DECR_REF_COUNT(pathObj1); } } } @@ -12864,6 +12868,7 @@ result = DispatchUnknownMethod(interp, invokedObject, objc-1, objv+1, callInfoObj, objv[1], NSF_CM_NO_OBJECT_METHOD|NSF_CSC_IMMEDIATE); DECR_REF_COUNT(callInfoObj); + DECR_REF_COUNT(pathObj); } } Nsf_PopFrameCsc(interp, framePtr);