nginx-0.0.7-2004-07-02-09:47:00 import
diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c
index 893b2a9..c10e230 100644
--- a/src/event/ngx_event_timer.c
+++ b/src/event/ngx_event_timer.c
@@ -110,25 +110,26 @@
 #endif
 
             ev->timer_set = 0;
-            ev->timedout = 1;
-#if (NGX_THREADS)
-            ngx_unlock(ev->lock);
-#endif
 
             if (ngx_threaded) {
                 if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
                     return;
                 }
 
+                ev->posted_timedout = 1;
                 ngx_post_event(ev);
 
                 ngx_mutex_unlock(ngx_posted_events_mutex);
                 continue;
             }
 
+            ev->timedout = 1;
+
             ev->event_handler(ev);
+
             continue;
         }
+
         break;
     }