Index: generic/nsf.c =================================================================== diff -u -r39607bed15618248130a1251cc2b1c2a03db93b0 -r236c09e4dce9355a63c83b75f8c3a4955148c17d --- generic/nsf.c (.../nsf.c) (revision 39607bed15618248130a1251cc2b1c2a03db93b0) +++ generic/nsf.c (.../nsf.c) (revision 236c09e4dce9355a63c83b75f8c3a4955148c17d) @@ -6948,16 +6948,14 @@ if (cmd && (Tcl_Command_flags(cmd) & NSF_CMD_PROTECTED_METHOD) && (flags & (NSF_CM_NO_UNKNOWN|NSF_CM_NO_PROTECT)) == 0) { - NsfObject *o, *lastSelf = GetSelfObj(interp); + NsfObject *lastSelf = GetSelfObj(interp); - /* we do not want to rely on clientData, so get obj from cmdObj */ - GetObjectFromObj(interp, cmdObj, &o); - if (o != lastSelf) { - /*fprintf(stderr, "+++ protected method %s is not invoked\n", methodName);*/ - /* allow unknown-handler to handle this case */ - fprintf(stderr, "+++ %s is protected, therefore unknown %p %s lastself=%p o=%p flags = %.6x\n", - methodName, cmdObj, ObjStr(cmdObj), lastSelf, o, flags); - /*NsfShowStack(interp);*/ + if (object != lastSelf) { + if (RUNTIME_STATE(interp)->debugLevel > 0) { + fprintf(stderr, "Warning: method %s is protected; %s.%s is treated as unknown.\n", + methodName, objectName(object), methodName); + } + /* reset cmd, since it is still unknown */ cmd = NULL; } }