Index: generic/nsf.c =================================================================== diff -u -r6028c95c4c4f96815c25ab8dc9760ab2a2dd901b -r7312bac146d4f5bf1d2a9655def3c4dc09dbe435 --- generic/nsf.c (.../nsf.c) (revision 6028c95c4c4f96815c25ab8dc9760ab2a2dd901b) +++ generic/nsf.c (.../nsf.c) (revision 7312bac146d4f5bf1d2a9655def3c4dc09dbe435) @@ -5706,8 +5706,11 @@ GetVarAndNameFromHash(entryPtr, &varPtr, &nameObj); VarHashRefCount(varPtr)++; if ((varPtr->flags & VAR_TRACED_UNSET) != 0u /* TclIsVarTraced(varPtr) */) { + (void)UnsetInstVar(interp, 1 /* no error msg */, object, ObjStr(nameObj)); + /* The variable might have been brought back by an unset trace, plus + newly created unset traces; deactivate *all* traces on revived vars. */ if (TclIsVarTraced(varPtr)) { Tcl_HashEntry *tPtr = Tcl_FindHashEntry(&iPtr->varTraces, varPtr); VarTrace *tracePtr = Tcl_GetHashValue(tPtr); @@ -5735,7 +5738,6 @@ } } - /* *---------------------------------------------------------------------- * NSCleanupNamespace --