Index: generic/nsf.c =================================================================== diff -u -N -re367957430bf9246069791785619a5503e166d33 -r7ca41c65294c91734558ea49037af2e5ff362e8a --- generic/nsf.c (.../nsf.c) (revision e367957430bf9246069791785619a5503e166d33) +++ generic/nsf.c (.../nsf.c) (revision 7ca41c65294c91734558ea49037af2e5ff362e8a) @@ -515,6 +515,7 @@ Tcl_InterpState state; NsfRuntimeState *rst; int result, prevDoProfile; + unsigned int prevPreventRecursionFlags; nonnull_assert(interp != NULL); nonnull_assert(dsPtr != NULL); @@ -533,7 +534,7 @@ */ return TCL_OK; } - + prevPreventRecursionFlags = rst->preventRecursionFlags; rst->preventRecursionFlags |= traceEvalFlags; } @@ -560,7 +561,7 @@ Tcl_RestoreInterpState(interp, state); } if ((traceEvalFlags & NSF_EVAL_PREVENT_RECURSION) != 0u) { - rst->preventRecursionFlags &= ~traceEvalFlags; + rst->preventRecursionFlags = prevPreventRecursionFlags; } if (prevDoProfile == 1) {