- (djm) SA_INTERRUPT is the converse of SA_RESTART, apply it only for
   SIGALRM.
diff --git a/misc.c b/misc.c
index 6ce66fc..7430116 100644
--- a/misc.c
+++ b/misc.c
@@ -108,13 +108,13 @@
 		memset(&sa, 0, sizeof(sa));
 		sigemptyset(&sa.sa_mask);
 		sa.sa_flags = 0;
-		if (sig == SIGCHLD)
 #if defined(SA_RESTART)
+		if (sig == SIGCHLD)
 			sa.sa_flags |= SA_RESTART;
-#elif defined(SA_INTERRUPT)
+#endif
+#if defined(SA_INTERRUPT)
+		if (sig == SIGALRM)
 			sa.sa_flags |= SA_INTERRUPT;
-#else
-			;
 #endif
 		sa.sa_handler = act;
 		if (sigaction(sig, &sa, NULL) == -1)