diff --git a/svr-chansession.c b/svr-chansession.c
index 0b3e833..e6ad713 100644
--- a/svr-chansession.c
+++ b/svr-chansession.c
@@ -137,6 +137,7 @@ static void sesssigchild_handler(int UNUSED(dummy)) {
 
 	sa_chld.sa_handler = sesssigchild_handler;
 	sa_chld.sa_flags = SA_NOCLDSTOP;
+	sa_chld.sa_mask = 0;
 	sigaction(SIGCHLD, &sa_chld, NULL);
 	TRACE(("leave sigchld handler"))
 }
diff --git a/svr-main.c b/svr-main.c
index d3fa9af..ff3691f 100644
--- a/svr-main.c
+++ b/svr-main.c
@@ -370,6 +370,7 @@ static void commonsetup() {
 	/* catch and reap zombie children */
 	sa_chld.sa_handler = sigchld_handler;
 	sa_chld.sa_flags = SA_NOCLDSTOP;
+	sa_chld.sa_mask = 0;
 	if (sigaction(SIGCHLD, &sa_chld, NULL) < 0) {
 		dropbear_exit("signal() error");
 	}