diff -up ksh-20120801/src/cmd/ksh93/sh/lex.c.mlikfiks ksh-20120801/src/cmd/ksh93/sh/lex.c --- ksh-20120801/src/cmd/ksh93/sh/lex.c.mlikfiks 2013-07-22 12:45:30.923170264 +0200 +++ ksh-20120801/src/cmd/ksh93/sh/lex.c 2013-07-22 12:46:25.235556905 +0200 @@ -2465,7 +2465,7 @@ static int alias_exceptf(Sfio_t *iop,int if(dp!=handle) sfdisc(iop,dp); } - else if(type==SF_FINAL) + else if(type==SF_DPOP || type==SF_FINAL) free((void*)ap); goto done; } diff -up ksh-20120801/src/cmd/ksh93/sh/path.c.mlikfiks ksh-20120801/src/cmd/ksh93/sh/path.c --- ksh-20120801/src/cmd/ksh93/sh/path.c.mlikfiks 2013-07-22 12:47:23.149990016 +0200 +++ ksh-20120801/src/cmd/ksh93/sh/path.c 2013-07-22 12:48:33.363283877 +0200 @@ -613,6 +613,7 @@ static void funload(Shell_t *shp,int fno } while((rp=dtnext(shp->fpathdict,rp)) && strcmp(pname,rp->fname)==0); sh_close(fno); + free((void*)pname); return; } sh_onstate(SH_NOLOG); diff -up ksh-20120801/src/cmd/ksh93/sh/macro.c.aliasfix ksh-20120801/src/cmd/ksh93/sh/macro.c --- ksh-20120801/src/cmd/ksh93/sh/macro.c.aliasfix 2013-07-29 15:03:45.841680475 +0200 +++ ksh-20120801/src/cmd/ksh93/sh/macro.c 2013-07-29 15:04:23.871336821 +0200 @@ -2085,6 +2085,7 @@ static void comsubst(Mac_t *mp,register } sfputc(stkp,c); } + sfputc(stkp,' '); c = stktell(stkp); str=stkfreeze(stkp,1); /* disable verbose and don't save in history file */