Index: generic/nsf.c =================================================================== diff -u -r87bc503b7d71458e9a6a107a80fe2804e01750dd -r424b6e1fb16abbc4750efa768f5a52c5227b8734 --- generic/nsf.c (.../nsf.c) (revision 87bc503b7d71458e9a6a107a80fe2804e01750dd) +++ generic/nsf.c (.../nsf.c) (revision 424b6e1fb16abbc4750efa768f5a52c5227b8734) @@ -14140,12 +14140,24 @@ ObjectName(GetSelfObj(interp)), ObjectName(actualSelf), ObjectName(invokedObject), subMethodName); */ if (actualSelf != lastSelf) { - const char *path = withinEnsemble ? ObjStr(NsfMethodNamePath(interp, framePtr0, methodName)) : methodName; + const char *path; + Tcl_Obj *pathObj; + if (withinEnsemble) { + pathObj = NsfMethodNamePath(interp, framePtr0, methodName); + path = ObjStr(pathObj); + } else { + path = methodName; + } + NsfLog(interp, NSF_LOG_WARN, "'%s %s %s' fails since method %s.%s %s is protected", ObjectName(actualSelf), path, subMethodName, (actualClass != NULL) ? ClassName(actualClass) : ObjectName(actualSelf), path, subMethodName); + subMethodCmd = NULL; + if (withinEnsemble) { + DECR_REF_COUNT(pathObj); + } } } }