--- ray/src/common/calexpr.c 1992/10/06 12:29:36 2.9 +++ ray/src/common/calexpr.c 1992/11/10 10:29:19 2.10 @@ -128,7 +128,7 @@ char *expr; epfree(epar) /* free a parse tree */ register EPNODE *epar; { - register EPNODE *ep; + register EPNODE *ep, *epn; switch (epar->type) { @@ -149,8 +149,10 @@ register EPNODE *epar; break; default: - for (ep = epar->v.kid; ep != NULL; ep = ep->sibling) + for (ep = epar->v.kid; ep != NULL; ep = epn) { + epn = ep->sibling; epfree(ep); + } break; }