diff --git a/src/cmd/ksh93/sh/name.c b/src/cmd/ksh93/sh/name.c index a00fc66d0..81b1fda19 100644 --- a/src/cmd/ksh93/sh/name.c +++ b/src/cmd/ksh93/sh/name.c @@ -2646,6 +2646,13 @@ void nv_optimize(Namval_t *np) } if((xp= (struct optimize*)fp) && xp->ptr==shp->argaddr) return; + if(xp && xp->next) + { + register struct optimize *xpn; + for(xpn = xp->next; xpn; xpn = xpn->next) + if(xpn->ptr == shp->argaddr && xpn->np == np) + return; + } if(op = opt_free) opt_free = op->next; else