A couple of small bugfixes from Marshall M. Midden <m4@brecis.com>
diff --git a/shell/lash.c b/shell/lash.c
index 1640122..11e7dec 100644
--- a/shell/lash.c
+++ b/shell/lash.c
@@ -1462,8 +1462,11 @@
 			while (!job_list.fg->progs[i].pid ||
 				   job_list.fg->progs[i].is_stopped == 1) i++;
 
-			if (waitpid(job_list.fg->progs[i].pid, &status, WUNTRACED)<0)
-				perror_msg_and_die("waitpid(%d)",job_list.fg->progs[i].pid);
+			if (waitpid(job_list.fg->progs[i].pid, &status, WUNTRACED)<0) {
+				if (errno != ECHILD) {
+					perror_msg_and_die("waitpid(%d)",job_list.fg->progs[i].pid);
+				}
+			}
 
 			if (WIFEXITED(status) || WIFSIGNALED(status)) {
 				/* the child exited */
@@ -1500,7 +1503,7 @@
 	free(command);
 
 	/* return controlling TTY back to parent process group before exiting */
-	if (tcsetpgrp(shell_terminal, parent_pgrp))
+	if (tcsetpgrp(shell_terminal, parent_pgrp) && errno != ENOTTY)
 		perror_msg("tcsetpgrp");
 
 	/* return exit status if called with "-c" */