Index: generic/nsfObj.c =================================================================== diff -u -rcbcfec72376d549a806859c873195cc0ebc9c9ea -rc0828ca7faac0ea7ebf189685a47c3163e966f7a --- generic/nsfObj.c (.../nsfObj.c) (revision cbcfec72376d549a806859c873195cc0ebc9c9ea) +++ generic/nsfObj.c (.../nsfObj.c) (revision c0828ca7faac0ea7ebf189685a47c3163e966f7a) @@ -508,12 +508,16 @@ Mixinreg *mixinRegPtr = obj->internalRep.twoPtrValue.ptr1; /* - * We got a cmd, but this might be already deleted. + * We got a mixin with an included cmd, but both might be already deleted. */ - if ((Tcl_Command_flags(mixinRegPtr->mixin->object.id) & CMD_IS_DELETED)) { + if ((mixinRegPtr->mixin->object.flags & NSF_DELETED) != 0U + || (Tcl_Command_flags(mixinRegPtr->mixin->object.id) & CMD_IS_DELETED) != 0U) { + /* * The cmd is deleted. retry to refetch it. */ + /*fprintf(stderr, "... we have to refetch \n");*/ + if (MixinregSetFromAny(interp, obj) == TCL_OK) { mixinRegPtr = obj->internalRep.twoPtrValue.ptr1; } else { @@ -523,6 +527,7 @@ *guardObj = mixinRegPtr->guardObj; *clPtr = mixinRegPtr->mixin; + return TCL_OK; }