nginx-0.0.1-2003-01-24-19:09:40 import
diff --git a/src/http/ngx_http_event.c b/src/http/ngx_http_event.c
index b300505..6792105 100644
--- a/src/http/ngx_http_event.c
+++ b/src/http/ngx_http_event.c
@@ -241,16 +241,27 @@
 
     } while (rc == NGX_AGAIN && r->header_in->pos.mem < r->header_in->last.mem);
 
-    if (r->header_timeout) {
-        r->header_timeout = 0;
-        ngx_del_timer(ev);
-        ngx_add_timer(ev, ngx_http_client_header_timeout);
-    }
+    if (rc == NGX_OK) {
+        /* HTTP header done */
 
-    if (rc == NGX_OK)
+        if (r->header_timeout) {
+            r->header_timeout = 0;
+            ngx_del_timer(ev);
+            ngx_add_timer(ev, ngx_http_client_header_timeout);
+        }
+
         return ngx_http_event_request_handler(r);
-    else
+
+    } else {
+
+        if (r->header_timeout) {
+            r->header_timeout = 0;
+            ngx_del_timer(ev);
+            ngx_add_timer(ev, ngx_http_client_header_timeout);
+        }
+
         return rc;
+    }
 }