nginx-0.0.2-2004-02-04-23:30:08 import
diff --git a/src/core/nginx.c b/src/core/nginx.c
index 21a22d0..43f40c5 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -221,7 +221,7 @@
 }
 
 
-/* TODO: broken single process */
+/* TODO: broken NGX_PROCESS_SINGLE */
 
 static void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
 {
@@ -634,6 +634,12 @@
         ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle");
 
         ngx_process_events(cycle->log);
+
+        if (ngx_reopen) {
+            ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "reopen logs");
+            ngx_reopen_files(cycle, -1);
+            ngx_reopen = 0;
+        }
     }
 }
 
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index 8e3175a..cba51e0 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -312,6 +312,13 @@
                           event_list[i].events, event_list[i].revents);
         }
 
+        if (event_list[i].fd == -1) {
+
+            /* the disabled event, workaround for our possible bug */
+
+            continue;
+        }
+
         c = &ngx_cycle->connections[event_list[i].fd];
 
         if (c->fd == -1) {
diff --git a/src/os/unix/ngx_posix_init.c b/src/os/unix/ngx_posix_init.c
index b76a9af..4e72339 100644
--- a/src/os/unix/ngx_posix_init.c
+++ b/src/os/unix/ngx_posix_init.c
@@ -144,14 +144,9 @@
             break;
 
         case ngx_signal_value(NGX_REOPEN_SIGNAL):
-            if (ngx_noaccept) {
-                action = ", ignoring";
-
-            } else {
-                ngx_reopen = 1;
-                action = ", reopen logs";
-                break;
-            }
+            ngx_reopen = 1;
+            action = ", reopen logs";
+            break;
 
         case ngx_signal_value(NGX_CHANGEBIN_SIGNAL):
             if ((ngx_inherited && getppid() > 1)