diff --git a/src/slurmd/slurmd.c b/src/slurmd/slurmd.c
index 81cf5bdf44547282710686ea4dab26ab54d0f251..57ba73127ead5415e0f027df029527d48ed0389e 100644
--- a/src/slurmd/slurmd.c
+++ b/src/slurmd/slurmd.c
@@ -169,6 +169,9 @@ void *slurmd_handle_signals(void *args)
 	if (sigaddset(&set, SIGTERM))
 		error("sigaddset errno %d on SIGTERM", errno);
 
+	if (sigprocmask(SIG_BLOCK, &set, NULL) != 0)
+		fatal("sigprocmask: %m");
+
 	while (1) {
 		if ((error_code = sigwait(&set, &sig)))
 			error("sigwait errno %d\n", error_code);