diff -up ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c.cdfix3 ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c --- ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c.cdfix3 2014-06-20 12:39:02.757407689 +0200 +++ ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c 2014-06-20 12:40:19.530998070 +0200 @@ -290,7 +290,7 @@ int b_cd(int argc, char *argv[],Shbltin_ if(newdirfd >=0) { /* chdir for directories on HSM/tapeworms may take minutes */ - if(fchdir(newdirfd) >= 0) + if((rval=fchdir(newdirfd)) >= 0) { if(shp->pwdfd >= 0) sh_close(shp->pwdfd);