dc1902
diff --git a/src/cmd/ksh93/sh/xec.c b/src/cmd/ksh93/sh/xec.c
dc1902
--- a/src/cmd/ksh93/sh/xec.c
dc1902
+++ b/src/cmd/ksh93/sh/xec.c
dc1902
@@ -1647,8 +1647,9 @@ int sh_exec(register const Shnode_t *t, int flags)
dc1902
 					{
dc1902
 						if (!unpipe)
dc1902
 							unpipe = iousepipe(shp);
dc1902
-						sh_subfork();
dc1902
 					}
dc1902
+
dc1902
+					sh_subfork();
dc1902
 				}
dc1902
 			}
dc1902
 			no_fork = !ntflag && !(type&(FAMP|FPOU)) && !shp->subshell &&