diff --git a/src/signal_handler.c b/src/signal_handler.c
index c05f3dd339fb3320842e75e9e9993feb4ca36897..2cd8b4d8a26c1f49fec59e960a26f10a77388aa2 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -1178,7 +1178,11 @@ void forkd(int fd)
 
 #ifdef USE_SIGCHILD
 
+#ifdef SIGNAL_ONESHOT
+static RETSIGTYPE receive_sigchild(int signum)
+#else
 static RETSIGTYPE receive_sigchild(int UNUSED(signum))
+#endif
 {
   pid_t pid;
   WAITSTATUSTYPE status;