Index: generic/nsfShadow.c =================================================================== diff -u -rb19a6e9aa168b386cf12ae0f66998c7a2a9ce495 -rd1916d543ed083b100c8f9c48dd987d92c4bdb95 --- generic/nsfShadow.c (.../nsfShadow.c) (revision b19a6e9aa168b386cf12ae0f66998c7a2a9ce495) +++ generic/nsfShadow.c (.../nsfShadow.c) (revision d1916d543ed083b100c8f9c48dd987d92c4bdb95) @@ -124,19 +124,17 @@ Tcl_GetIntFromObj(interp, objv[1], &level); /* todo: coroutine level messing is missing */ - topLevel = framePtr == NULL ? 0 : framePtr->level; + topLevel = (framePtr == NULL) ? 0 : framePtr->level; if (level > 0) { level -= topLevel; } - while (++level <= 0) { + while (++level <= 0 && varFramePtr) { framePtr = framePtr->nextPtr; varFramePtr = varFramePtr->callerPtr; } - if (varFramePtr == 0) { - fprintf(stderr, "*********** varFramePtr is NULL\n"); - } + frameFlags = varFramePtr ? Tcl_CallFrame_isProcCallFrame(varFramePtr) : 0; /*fprintf(stderr, " ... frame %p varFramePtr %p frameFlags %.6x\n", framePtr, varFramePtr, frameFlags); Tcl85showStack(interp);*/