Index: generic/tclExecute.c =================================================================== RCS file: /cvsroot/tcl/tcl/generic/tclExecute.c,v retrieving revision 1.19 diff -u -r1.19 tclExecute.c --- generic/tclExecute.c 2001/03/02 15:31:15 1.19 +++ generic/tclExecute.c 2001/03/09 14:37:16 @@ -634,7 +634,7 @@ valuePtr = POP_OBJECT(); Tcl_SetObjResult(interp, valuePtr); TclDecrRefCount(valuePtr); - if (stackTop != initStackTop) { + if (stackTop < initStackTop) { fprintf(stderr, "\nTclExecuteByteCode: done instruction at pc %u: stack top %d != entry stack top %d\n", (unsigned int)(pc - codePtr->codeStart), (unsigned int) stackTop, @@ -3131,6 +3131,7 @@ */ abnormalReturn: + done: while (stackTop > initStackTop) { valuePtr = POP_OBJECT(); Tcl_DecrRefCount(valuePtr); @@ -3140,7 +3141,6 @@ * Free the catch stack array if malloc'ed storage was used. */ - done: if (catchStackPtr != catchStackStorage) { ckfree((char *) catchStackPtr); }