--- tcl/tclProc.c.orig Fri Feb 24 16:19:56 1995 +++ tcl/tclProc.c Sun Jan 16 01:53:10 2000 @@ -793,11 +793,13 @@ */ procDone: - for (argPtr = frame.varPtr; argPtr != NULL; argPtr = argPtr->nextPtr) { + for (argPtr = frame.varPtr; argPtr != NULL;) { + void *tmp = argPtr; if (argPtr->flags & VAR_DYNAMIC) { free(argPtr->value); } - free((char *) argPtr); + argPtr = argPtr->nextPtr; + free(tmp); } iPtr->framePtr = frame.callerPtr; iPtr->varFramePtr = frame.callerVarPtr;