Index: generic/nsf.c =================================================================== diff -u -r6adb5d9759c3159a2da1e4f7cedebfcfb9a29123 -r33aa1b2385ae4e763ecc518178ad112a729423dc --- generic/nsf.c (.../nsf.c) (revision 6adb5d9759c3159a2da1e4f7cedebfcfb9a29123) +++ generic/nsf.c (.../nsf.c) (revision 33aa1b2385ae4e763ecc518178ad112a729423dc) @@ -9838,7 +9838,7 @@ assert(interp != NULL); assert(subClasses != NULL); - for (; likely(subClasses != NULL); subClasses = subClasses->nextPtr) { + do { Tcl_HashSearch hSrch; Tcl_HashEntry *hPtr; @@ -9851,6 +9851,7 @@ if (subClasses->cl->opt != NULL) { FilterSearchAgain(interp, &subClasses->cl->opt->classFilters, NULL, subClasses->cl); } + for (; hPtr; hPtr = Tcl_NextHashEntry(&hSrch)) { NsfObject *object = (NsfObject *)Tcl_GetHashKey(&subClasses->cl->instances, hPtr); @@ -9862,7 +9863,8 @@ FilterSearchAgain(interp, &object->opt->objFilters, object, NULL); } } - } + subClasses = subClasses->nextPtr; + } while (likely(subClasses != NULL)); } /*