Index: generic/nsfShadow.c =================================================================== diff -u -r7d2af5a3b3f0ac8ade700c3cd90a9aac5d00f0fa -reae784ccc80b2a18b83fbe631c32d549189f7927 --- generic/nsfShadow.c (.../nsfShadow.c) (revision 7d2af5a3b3f0ac8ade700c3cd90a9aac5d00f0fa) +++ generic/nsfShadow.c (.../nsfShadow.c) (revision eae784ccc80b2a18b83fbe631c32d549189f7927) @@ -213,22 +213,28 @@ */ static int Nsf_RenameObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { - Tcl_Command cmd; + Tcl_Command cmd, parentCmd; if (objc != 3) { /* wrong # args, let Tcl generate the error */ return NsfCallCommand(interp, NSF_RENAME, objc, objv); } /* if an obj/cl should be renamed => call the Nsf move method */ - cmd = Tcl_FindCommand(interp, ObjStr(objv[1]), (Tcl_Namespace *)NULL,0); + cmd = Tcl_FindCommand(interp, ObjStr(objv[1]), (Tcl_Namespace *)NULL, 0); if (cmd) { NsfObject *object = NsfGetObjectFromCmdPtr(cmd); Tcl_Obj *methodObj = object ? NsfMethodObj(object, NSF_o_move_idx) : NULL; if (object && methodObj) { return NsfCallMethodWithArgs(interp, (Nsf_Object *)object, methodObj, objv[2], 1, 0, NSF_CSC_IMMEDIATE); } + + parentCmd = Tcl_FindCommand(interp, Tcl_Command_nsPtr(cmd)->fullName, + (Tcl_Namespace *)NULL, 0); + if (parentCmd) { + NsfObjectMethodEpochIncr("::rename"); + } } /* Actually rename the cmd using Tcl's rename*/