diff -up ksh-20100621/src/cmd/ksh93/sh/io.c.dontstop ksh-20100621/src/cmd/ksh93/sh/io.c --- ksh-20100621/src/cmd/ksh93/sh/io.c.dontstop 2011-12-06 14:45:32.000000000 +0100 +++ ksh-20100621/src/cmd/ksh93/sh/io.c 2011-12-06 14:46:06.854854711 +0100 @@ -1123,7 +1123,7 @@ int sh_redirect(Shell_t *shp,struct iono message = e_file; goto fail; } - if(shp->subshell && dupfd==1) + if(shp->subshell && dupfd==1 && (sfset(sfstdout,0,0)&SF_STRING)) { if(sfset(sfstdout,0,0)&SF_STRING) sh_subtmpfile(shp);