diff -up ksh-20120214/src/cmd/ksh93/sh/macro.c.tildafix ksh-20120214/src/cmd/ksh93/sh/macro.c --- ksh-20120214/src/cmd/ksh93/sh/macro.c.tildafix 2012-03-13 10:09:36.895655554 +0100 +++ ksh-20120214/src/cmd/ksh93/sh/macro.c 2012-03-13 10:11:54.751591156 +0100 @@ -2719,7 +2719,12 @@ skip: if(!logins_tree) logins_tree = dtopen(&_Nvdisc,Dtbag); if(np=nv_search(string,logins_tree,NV_ADD)) + { + c = shp->subshell; + shp->subshell = 0; nv_putval(np, pw->pw_dir,0); + shp->subshell = c; + } return(pw->pw_dir); }