nginx-0.0.1-2003-12-15-16:57:13 import
diff --git a/src/core/ngx_config.h b/src/core/ngx_config.h
index bf393f6..4f6f23d 100644
--- a/src/core/ngx_config.h
+++ b/src/core/ngx_config.h
@@ -2,6 +2,11 @@
 #define _NGX_CONFIG_H_INCLUDED_
 
 
+/* STUB to allocate a big ngx_connections */
+#undef  FD_SETSIZE
+#define FD_SETSIZE  5000
+
+
 #if defined __FreeBSD__
 #include <ngx_freebsd_config.h>
 
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 6d20fdf..6d5bc0d 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -346,17 +346,17 @@
                 continue;
             }
 
-            if (rc == NGX_AGAIN) {
-                return;
-            }
-
             if (rc >= NGX_HTTP_SPECIAL_RESPONSE || rc == NGX_ERROR) {
                 ngx_http_finalize_request(r, rc);
                 return;
             }
 
-            if (rc == NGX_OK && r->phase == NGX_HTTP_CONTENT_PHASE) {
-                ngx_http_finalize_request(r, 0);
+            if (r->phase == NGX_HTTP_CONTENT_PHASE) {
+                ngx_http_finalize_request(r, rc);
+                return;
+            }
+
+            if (rc == NGX_AGAIN) {
                 return;
             }
 
diff --git a/src/http/ngx_http_write_filter.c b/src/http/ngx_http_write_filter.c
index 50f7f93..271ed17 100644
--- a/src/http/ngx_http_write_filter.c
+++ b/src/http/ngx_http_write_filter.c
@@ -24,7 +24,7 @@
 static ngx_command_t  ngx_http_write_filter_commands[] = {
 
     { ngx_string("buffer_output"),
-      NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
       ngx_conf_set_size_slot,
       NGX_HTTP_LOC_CONF_OFFSET,
       offsetof(ngx_http_write_filter_conf_t, buffer_output),
diff --git a/src/os/unix/ngx_errno.c b/src/os/unix/ngx_errno.c
index e94f2c9..c50da82 100644
--- a/src/os/unix/ngx_errno.c
+++ b/src/os/unix/ngx_errno.c
@@ -2,6 +2,8 @@
 #include <ngx_core.h>
 
 
+#if (HAVE_STRERROR_R)
+
 ngx_int_t ngx_strerror_r(int err, char *errstr, size_t size)
 {
     size_t  len;
@@ -22,3 +24,5 @@
 
     return len;
 }
+
+#endif