diff --git a/support/rotatelogs.c b/support/rotatelogs.c
index 55c4406..f4c6490 100644
--- a/support/rotatelogs.c
+++ b/support/rotatelogs.c
@@ -49,6 +49,7 @@
 #include "apr_time.h"
 #include "apr_getopt.h"
 #include "apr_thread_proc.h"
+#include "apr_signal.h"
 #if APR_FILES_AS_SOCKETS
 #include "apr_poll.h"
 #endif
@@ -595,6 +596,10 @@ int main (int argc, const char * const argv[])
             break;
         case 'p':
             config.postrotate_prog = opt_arg;
+#ifdef SIGCHLD
+            /* Prevent creation of zombies (on modern Unix systems). */
+            apr_signal(SIGCHLD, SIG_IGN);
+#endif
             break;
         case 'f':
             config.force_open = 1;
