Index: generic/nsf.c =================================================================== diff -u -N -re234956359b0a1ddeaf85f2b0989336b68fd6998 -r8dbedb9a954b6d9de577b60067bcb9806acd0e35 --- generic/nsf.c (.../nsf.c) (revision e234956359b0a1ddeaf85f2b0989336b68fd6998) +++ generic/nsf.c (.../nsf.c) (revision 8dbedb9a954b6d9de577b60067bcb9806acd0e35) @@ -4549,15 +4549,19 @@ # endif #endif (void)withKeepvars; /* make sure, the variable is not reported as unused */ - /* - * Free all objects systems with their root-classes. - */ - for (osPtr = RUNTIME_STATE(interp)->objectSystems; osPtr != NULL; osPtr = nPtr) { - nPtr = osPtr->nextPtr; - ObjectSystemFree(interp, osPtr); - } #ifdef DO_CLEANUP + { + NsfObjectSystem *nPtr; + /* + * Free all objects systems with their root-classes. + */ + for (osPtr = RUNTIME_STATE(interp)->objectSystems; osPtr != NULL; osPtr = nPtr) { + nPtr = osPtr->nextPtr; + ObjectSystemFree(interp, osPtr); + } + } + /* * Finally, free all nsfprocs. */