diff --git a/src/event/modules/ngx_rtsig_module.c b/src/event/modules/ngx_rtsig_module.c
index c1428ee..98a9155 100644
--- a/src/event/modules/ngx_rtsig_module.c
+++ b/src/event/modules/ngx_rtsig_module.c
@@ -476,11 +476,12 @@
 static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
 {
     int                name[2], len, rtsig_max, rtsig_nr;
-    ngx_uint_t         i;
+    ngx_uint_t         i, n;
     ngx_connection_t  *c;
 
     /* TODO: old cylces */
 
+    n = 0;
     c = cycle->connections;
     for (current = 0; current < cycle->connection_n; current++) {
 
@@ -491,6 +492,7 @@
         }
 
         if (c[i].read->active && c[i].read->event_handler) {
+            n++;
             c[i].read->ready = 1;
 
             if (!ngx_threaded) {
@@ -508,6 +510,7 @@
         }
 
         if (c[i].write->active && c[i].write->event_handler) {
+            n++;
             c[i].write->ready = 1;
     
             if (!ngx_threaded) {
@@ -524,13 +527,13 @@
             }
         }
 
-        if (i && (i % 100 == 0)) {
+        if (n && (n % 100 == 0)) {
 
             /*
              * Check the current rt queue length to prevent the new overflow.
              *
              * Learn the /proc/sys/kernel/rtsig-max value because
-             * it can be changed sisnce the last checking
+             * it can be changed sisnce the last checking.
              */
 
             name[0] = CTL_KERN;
@@ -553,10 +556,12 @@
 
             /*
              * drain rt signal queue if the /proc/sys/kernel/rtsig-nr
-             * is bigger then "/proc/sys/kernel/rtsig-max / 4"
+             * is bigger than "/proc/sys/kernel/rtsig-max / 4"
              */
 
             if (rtsig_max / 4 < rtsig_nr) {
+                ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
+                               "rtsig queue state: %d/%d", rtsig_nr, rtsig_max);
                 while (ngx_rtsig_process_events(cycle) == NGX_OK) { /* void */ }
             }
         }
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index 9b53edb..bdc9f46 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -256,6 +256,10 @@
             rev->ready = 1;
         }
 
+        if (rev->ready) {
+            rev->returned_instance = rev->instance;
+        }
+
         c->ctx = ls->ctx;
         c->servers = ls->servers;
 
diff --git a/src/event/ngx_event_posted.c b/src/event/ngx_event_posted.c
index 73a7377..96475f3 100644
--- a/src/event/ngx_event_posted.c
+++ b/src/event/ngx_event_posted.c
@@ -40,7 +40,7 @@
              */
 
             ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
-                          "stale posted event " PTR_FMT, ev);
+                           "stale posted event " PTR_FMT, ev);
             continue;
         }
 
