diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 13aa440..2a9b3b7 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -144,6 +144,13 @@
       offsetof(ngx_http_core_srv_conf_t, restrict_host_names),
       &ngx_http_restrict_host_names },
 
+    { ngx_string("ignore_invalid_headers"),
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG,
+      ngx_conf_set_flag_slot,
+      NGX_HTTP_SRV_CONF_OFFSET,
+      offsetof(ngx_http_core_srv_conf_t, ignore_invalid_headers),
+      NULL },
+
     { ngx_string("location"),
       NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_BLOCK|NGX_CONF_TAKE12,
       ngx_http_core_location,
@@ -505,7 +512,10 @@
                 continue;
             }
 
-            if (rc >= NGX_HTTP_SPECIAL_RESPONSE || rc == NGX_ERROR) {
+            if (rc >= NGX_HTTP_SPECIAL_RESPONSE
+                || rc == NGX_HTTP_NO_CONTENT
+                || rc == NGX_ERROR)
+            {
                 ngx_http_finalize_request(r, rc);
                 return;
             }
@@ -1578,6 +1588,7 @@
     cscf->client_header_timeout = NGX_CONF_UNSET_MSEC;
     cscf->client_header_buffer_size = NGX_CONF_UNSET_SIZE;
     cscf->restrict_host_names = NGX_CONF_UNSET_UINT;
+    cscf->ignore_invalid_headers = NGX_CONF_UNSET;
 
     return cscf;
 }
@@ -1663,6 +1674,9 @@
     ngx_conf_merge_unsigned_value(conf->restrict_host_names,
                               prev->restrict_host_names, 0);
 
+    ngx_conf_merge_value(conf->ignore_invalid_headers,
+                              prev->ignore_invalid_headers, 1);
+
     return NGX_CONF_OK;
 }
 
diff --git a/src/http/ngx_http_core_module.h b/src/http/ngx_http_core_module.h
index 2b2a1d0..463c6b7 100644
--- a/src/http/ngx_http_core_module.h
+++ b/src/http/ngx_http_core_module.h
@@ -87,6 +87,8 @@
     ngx_msec_t                 client_header_timeout;
 
     ngx_uint_t                 restrict_host_names;
+
+    ngx_flag_t                 ignore_invalid_headers;
 } ngx_http_core_srv_conf_t;
 
 
diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c
index c1d26fa..f3defa0 100644
--- a/src/http/ngx_http_header_filter_module.c
+++ b/src/http/ngx_http_header_filter_module.c
@@ -48,7 +48,7 @@
     ngx_null_string,  /* "201 Created" */
     ngx_null_string,  /* "202 Accepted" */
     ngx_null_string,  /* "203 Non-Authoritative Information" */
-    ngx_null_string,  /* "204 No Content" */
+    ngx_string("204 No Content"),
     ngx_null_string,  /* "205 Reset Content" */
     ngx_string("206 Partial Content"),
 
@@ -167,8 +167,8 @@
 
     if (r->headers_out.last_modified_time != -1) {
         if (r->headers_out.status != NGX_HTTP_OK
-            && r->headers_out.status != NGX_HTTP_NOT_MODIFIED
-            && r->headers_out.status != NGX_HTTP_PARTIAL_CONTENT)
+            && r->headers_out.status != NGX_HTTP_PARTIAL_CONTENT
+            && r->headers_out.status != NGX_HTTP_NOT_MODIFIED)
         {
             r->headers_out.last_modified_time = -1;
             r->headers_out.last_modified = NULL;
@@ -193,6 +193,16 @@
             /* 2XX */
             status = r->headers_out.status - NGX_HTTP_OK;
 
+            if (r->headers_out.status == NGX_HTTP_NO_CONTENT) {
+                r->header_only = 1;
+                r->headers_out.content_type.len = 0;
+                r->headers_out.content_type.data = NULL;
+                r->headers_out.last_modified_time = -1;
+                r->headers_out.last_modified = NULL;
+                r->headers_out.content_length = NULL;
+                r->headers_out.content_length_n = -1;
+            }
+
         } else if (r->headers_out.status < NGX_HTTP_BAD_REQUEST) {
             /* 3XX */
             status = r->headers_out.status - NGX_HTTP_MOVED_PERMANENTLY
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c
index 752b6a1..027d9ef 100644
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -529,6 +529,8 @@
 
         /* first char */
         case sw_start:
+            r->invalid_header = 0;
+
             switch (ch) {
             case CR:
                 r->header_end = p;
@@ -552,6 +554,8 @@
                     break;
                 }
 
+                r->invalid_header = 1;
+
                 break;
 
             }
@@ -606,6 +610,8 @@
                 break;
             }
 
+            r->invalid_header = 1;
+
             break;
 
         /* space* before header value */
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 28412b6..4cbf915 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -725,6 +725,7 @@
     ngx_connection_t           *c;
     ngx_http_header_t          *hh;
     ngx_http_request_t         *r;
+    ngx_http_core_srv_conf_t   *cscf;
     ngx_http_core_main_conf_t  *cmcf;
 
     c = rev->data;
@@ -742,6 +743,7 @@
     }
 
     cmcf = ngx_http_get_module_main_conf(r, ngx_http_core_module);
+    cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module);
     hh = (ngx_http_header_t *) cmcf->headers_in_hash.buckets;
 
     rc = NGX_AGAIN;
@@ -783,8 +785,7 @@
 
         if (rc == NGX_OK) {
 
-#if 0
-            if (r->invalid_header) {
+            if (r->invalid_header && cscf->ignore_invalid_headers) {
 
                 /* there was error while a header line parsing */
 
@@ -796,7 +797,6 @@
                               &header);
                 continue;
             }
-#endif
 
             /* a header line has been parsed successfully */
 
@@ -1406,7 +1406,9 @@
     ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                    "http finalize request: %d, \"%V\"", rc, &r->uri);
 
-    if (r->parent && rc >= NGX_HTTP_SPECIAL_RESPONSE) {
+    if (r->parent
+        && (rc >= NGX_HTTP_SPECIAL_RESPONSE || rc == NGX_HTTP_NO_CONTENT))
+    {
         ngx_http_finalize_request(r, ngx_http_special_response_handler(r, rc));
         return;
     }
@@ -1450,7 +1452,7 @@
         return;
     }
 
-    if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
+    if (rc >= NGX_HTTP_SPECIAL_RESPONSE || rc == NGX_HTTP_NO_CONTENT) {
 
         if (r->connection->read->timer_set) {
             ngx_del_timer(r->connection->read);
diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h
index 5b26151..f05bc1b 100644
--- a/src/http/ngx_http_request.h
+++ b/src/http/ngx_http_request.h
@@ -42,6 +42,7 @@
 
 
 #define NGX_HTTP_OK                        200
+#define NGX_HTTP_NO_CONTENT                204
 #define NGX_HTTP_PARTIAL_CONTENT           206
 
 #define NGX_HTTP_SPECIAL_RESPONSE          300
@@ -337,6 +338,8 @@
     /* URI with "\0" or "%00" */
     unsigned                          zero_in_uri:1;
 
+    unsigned                          invalid_header:1;
+
     unsigned                          valid_location:1;
     unsigned                          valid_unparsed_uri:1;
     unsigned                          uri_changed:1;
diff --git a/src/http/ngx_http_special_response.c b/src/http/ngx_http_special_response.c
index 536068b..5591dbc 100644
--- a/src/http/ngx_http_special_response.c
+++ b/src/http/ngx_http_special_response.c
@@ -191,6 +191,10 @@
 
 static ngx_str_t error_pages[] = {
 
+    ngx_null_string,             /* 204 */
+
+#define NGX_HTTP_LEVEL_200  1
+
     /* ngx_null_string, */       /* 300 */
     ngx_string(error_301_page),
     ngx_string(error_302_page),
@@ -290,17 +294,23 @@
         }
     }
 
-    if (error < NGX_HTTP_BAD_REQUEST) {
+    if (error == NGX_HTTP_NO_CONTENT) {
+        /* 204 */
+        err = 0;
+
+    } else if (error < NGX_HTTP_BAD_REQUEST) {
         /* 3XX */
         err = error - NGX_HTTP_MOVED_PERMANENTLY;
 
     } else if (error < NGX_HTTP_NGX_CODES) {
         /* 4XX */
-        err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_300;
+        err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_200
+                                           + NGX_HTTP_LEVEL_300;
 
     } else {
         /* 49X, 5XX */
-        err = error - NGX_HTTP_NGX_CODES + NGX_HTTP_LEVEL_300
+        err = error - NGX_HTTP_NGX_CODES + NGX_HTTP_LEVEL_200
+                                         + NGX_HTTP_LEVEL_300
                                          + NGX_HTTP_LEVEL_400;
         switch (error) {
             case NGX_HTTP_TO_HTTPS:
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index f766d7d..0928fbd 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -779,12 +779,6 @@
         return;
     }
 
-    if (n == NGX_HTTP_INTERNAL_SERVER_ERROR) {
-        ngx_http_upstream_finalize_request(r, u,
-                                           NGX_HTTP_INTERNAL_SERVER_ERROR);
-        return;
-    }
-
     u->header_in.last += n;
 
 #if 0
diff --git a/src/http/ngx_http_write_filter_module.c b/src/http/ngx_http_write_filter_module.c
index e0f3828..2d9db8b 100644
--- a/src/http/ngx_http_write_filter_module.c
+++ b/src/http/ngx_http_write_filter_module.c
@@ -168,6 +168,7 @@
         return NGX_OK;
     }
 
+#if 0
     /*
      * avoid the output if there are no incoming bufs but there are
      * the postponed requests or data
@@ -176,6 +177,7 @@
     if (in == NULL && r->postponed) {
         return NGX_OK;
     }
+#endif
 
     if (c->write->delayed) {
         return NGX_AGAIN;
