8b6a46
diff -up mksh/jobs.c.waitfail mksh/jobs.c
8b6a46
--- mksh/jobs.c.waitfail	2017-08-09 10:06:36.500591694 +0200
8b6a46
+++ mksh/jobs.c	2017-08-09 10:08:34.325534710 +0200
8b6a46
@@ -1009,8 +1009,14 @@ j_notify(void)
8b6a46
 	}
8b6a46
 	for (j = job_list; j; j = tmp) {
8b6a46
 		tmp = j->next;
8b6a46
-		if (j->flags & JF_REMOVE)
8b6a46
-			remove_job(j, "notify");
8b6a46
+		if (j->flags & JF_REMOVE) {
8b6a46
+			if (j == async_job || (j->flags & JF_KNOWN)) {
8b6a46
+				j->flags = (j->flags & ~JF_REMOVE) | JF_ZOMBIE;
8b6a46
+				j->job = -1;
8b6a46
+				nzombie++;
8b6a46
+			} else
8b6a46
+				remove_job(j, "notify");
8b6a46
+		}
8b6a46
 	}
8b6a46
 	shf_flush(shl_out);
8b6a46
 #ifndef MKSH_NOPROSPECTOFWORK