Index: generic/nsfObj.c =================================================================== diff -u -r8e0b30355e24d03a7baba8b701cbab2aa7694157 -r5163190ade6f6a2abcd8b7f0265f74457557a61c --- generic/nsfObj.c (.../nsfObj.c) (revision 8e0b30355e24d03a7baba8b701cbab2aa7694157) +++ generic/nsfObj.c (.../nsfObj.c) (revision 5163190ade6f6a2abcd8b7f0265f74457557a61c) @@ -499,12 +499,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 { @@ -514,6 +518,7 @@ *guardObj = mixinRegPtr->guardObj; *clPtr = mixinRegPtr->mixin; + return TCL_OK; }