about summary refs log tree commit diff
path: root/Src/exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/exec.c')
-rw-r--r--Src/exec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/Src/exec.c b/Src/exec.c
index e504554e5..7f6c9f136 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -980,9 +980,12 @@ execpline(Estate state, wordcode slcode, int how, int last1)
 		    jn->stat |= STAT_NOPRINT;
 		    makerunning(jn);
 		}
-		if (!(jn->stat & STAT_LOCKED)) {
-		    child_unblock();
+		if (!(jn->stat & STAT_LOCKED))
 		    waitjobs();
+
+		if (list_pipe_job && jobtab[list_pipe_job].procs &&
+		    !(jobtab[list_pipe_job].stat & STAT_STOPPED)) {
+		    child_unblock();
 		    child_block();
 		}
 		if (list_pipe_child &&