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);
}