diff --git a/src/listener.c b/src/listener.c index 1947fdb53..7f038c4a3 100644 --- a/src/listener.c +++ b/src/listener.c @@ -257,7 +257,8 @@ void enable_listener(struct listener *listener) if (listener->state == LI_LISTEN) { BUG_ON(listener->rx.fd == -1); if ((global.mode & (MODE_DAEMON | MODE_MWORKER)) && - !(proc_mask(listener->rx.settings->bind_proc) & pid_bit)) { + (!!master != !!(listener->rx.flags & RX_F_MWORKER) || + !(proc_mask(listener->rx.settings->bind_proc) & pid_bit))) { /* we don't want to enable this listener and don't * want any fd event to reach it. */