diff --git a/fanout.c b/fanout.c
index 668863824d515dab95db83c0444c3aa36a9e2046..f108f7b6a25728601f4696b8143b87c84b318942 100644
--- a/fanout.c
+++ b/fanout.c
@@ -503,8 +503,13 @@ xit\n");
 
         fanout_debug (3, "server waiting for new activity\n");
 
-        if ((nevents = epoll_wait (epollfd, events, max_events, -1)) == -1)
+        errno = 0;
+        if ((nevents = epoll_wait (epollfd, events, max_events, -1)) == -1) {
+            if (errno == EINTR) {
+                continue;
+            }
             fanout_error ("epoll_wait");
+        }
 
         if (nevents == 0) {
             continue;