diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 30238c7fbe9a5751cae2cd4394824e3d6e6ea782..a390654452ede045b9ef1a1826443f155e6eba4d 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -110,7 +110,7 @@ static void initAndRun(int argc, char * * argv)
     /* Catch SIGINT. */
     struct sigaction act;
     act.sa_handler = sigintHandler;
-    sigfillset(&act.sa_mask);
+    sigemptyset(&act.sa_mask);
     act.sa_flags = 0;
     if (sigaction(SIGINT, &act, 0))
         throw SysError("installing handler for SIGINT");
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index e846995f76bbb31a38ad52dd489781f517ca2be4..5a869ead610d7ae9a409abfdf0280901b1885a12 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -413,6 +413,7 @@ static void restoreSIGPIPE()
     struct sigaction act, oact;
     act.sa_handler = SIG_DFL;
     act.sa_flags = 0;
+    sigemptyset(&act.sa_mask);
     if (sigaction(SIGPIPE, &act, &oact)) throw SysError("resetting SIGPIPE");
 }