diff --git a/src/core/ngx_connection.c b/src/core/ngx_connection.c
index a7c02c8..8dedbd1 100644
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -212,6 +212,9 @@
         return;
     }
 
+    ngx_accept_mutex_held = 0;
+    ngx_accept_mutex = NULL;
+
     ls = cycle->listening.elts;
     for (i = 0; i < cycle->listening.nelts; i++) {
         fd = ls[i].fd;
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 8d37d01..9f0cd18 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -375,7 +375,7 @@
             return NGX_ERROR;
         }
 
-#if 0
+#if 1
         if (ngx_accept_mutex_held == 0 && timer == 0) {
             /* STUB */ timer = 500;
         }
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index 5678c84..b50b873 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -28,7 +28,8 @@
 #include <ngx_aio_module.h>
 #endif
 
-static int ngx_event_init(ngx_cycle_t *cycle);
+static ngx_int_t ngx_event_module_init(ngx_cycle_t *cycle);
+static ngx_int_t ngx_event_process_init(ngx_cycle_t *cycle);
 static char *ngx_events_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
 
 static char *ngx_event_connections(ngx_conf_t *cf, ngx_command_t *cmd,
@@ -39,11 +40,16 @@
 static char *ngx_event_init_conf(ngx_cycle_t *cycle, void *conf);
 
 
-int                    ngx_event_flags;
-ngx_event_actions_t    ngx_event_actions;
+static ngx_uint_t                 ngx_event_max_module;
+
+ngx_uint_t                        ngx_event_flags;
+ngx_event_actions_t               ngx_event_actions;
 
 
-static int             ngx_event_max_module;
+ngx_atomic_t                     *ngx_accept_mutex_ptr;
+ngx_atomic_t                     *ngx_accept_mutex;
+ngx_uint_t                        ngx_accept_mutex_held;
+
 
 ngx_thread_volatile ngx_event_t  *ngx_posted_events;
 #if (NGX_THREADS)
@@ -101,6 +107,13 @@
       offsetof(ngx_event_conf_t, multi_accept),
       NULL },
 
+    { ngx_string("accept_mutex"),
+      NGX_EVENT_CONF|NGX_CONF_TAKE1,
+      ngx_conf_set_flag_slot,
+      0,
+      offsetof(ngx_event_conf_t, accept_mutex),
+      NULL },
+
       ngx_null_command
 };
 
@@ -119,18 +132,50 @@
     &ngx_event_core_module_ctx,            /* module context */
     ngx_event_core_commands,               /* module directives */
     NGX_EVENT_MODULE,                      /* module type */
-    NULL,                                  /* init module */
-    ngx_event_init                         /* init child */
+    ngx_event_module_init,                 /* init module */
+    ngx_event_process_init                 /* init process */
 };
 
 
-static int ngx_event_init(ngx_cycle_t *cycle)
+static ngx_int_t ngx_event_module_init(ngx_cycle_t *cycle)
+{
+    ngx_core_conf_t   *ccf;
+    ngx_event_conf_t  *ecf;
+
+    ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
+
+    if (ccf->master == 0) {
+        return NGX_OK;
+    }
+
+    ecf = ngx_event_get_conf(cycle->conf_ctx, ngx_event_core_module);
+
+    if (ecf->accept_mutex == 0) {
+        return NGX_OK;
+    }
+
+    ngx_accept_mutex_ptr = mmap(NULL, sizeof(ngx_atomic_t),
+                                PROT_READ|PROT_WRITE,
+                                MAP_ANON|MAP_SHARED, -1, 0);
+
+    if (ngx_accept_mutex_ptr == NULL) {
+        ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
+                      "mmap(MAP_ANON|MAP_SHARED) failed");
+        return NGX_ERROR;
+    }
+
+    return NGX_OK;
+}
+
+
+static ngx_int_t ngx_event_process_init(ngx_cycle_t *cycle)
 {
     ngx_uint_t           m, i;
     ngx_socket_t         fd;
     ngx_event_t         *rev, *wev;
     ngx_listening_t     *s;
     ngx_connection_t    *c;
+    ngx_core_conf_t     *ccf;
     ngx_event_conf_t    *ecf;
     ngx_event_module_t  *module;
 #if (WIN32)
@@ -138,6 +183,13 @@
 #endif
 
 
+    ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
+
+    if (ccf->worker_processes > 1 && ngx_accept_mutex_ptr) {
+        ngx_accept_mutex = ngx_accept_mutex_ptr;
+        ngx_accept_mutex_held = 1;
+    }
+
 #if (NGX_THREADS)
     if (!(ngx_posted_events_mutex = ngx_mutex_init(cycle->log, 0))) {
         return NGX_ERROR;
@@ -470,6 +522,7 @@
     ecf->connections = NGX_CONF_UNSET;
     ecf->use = NGX_CONF_UNSET;
     ecf->multi_accept = NGX_CONF_UNSET;
+    ecf->accept_mutex = NGX_CONF_UNSET;
     ecf->name = (void *) NGX_CONF_UNSET;
 
     return ecf;
@@ -542,6 +595,7 @@
     cycle->connection_n = ecf->connections;
 
     ngx_conf_init_value(ecf->multi_accept, 0);
+    ngx_conf_init_value(ecf->accept_mutex, 1);
 
     return NGX_CONF_OK;
 }
diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
index 69a08cd..7fa1a93 100644
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -374,9 +374,12 @@
 
 
 typedef struct {
-    int          connections;
-    int          use;
+    ngx_int_t    connections;
+    ngx_int_t    use;
+
     ngx_flag_t   multi_accept;
+    ngx_flag_t   accept_mutex;
+
     u_char      *name;
 } ngx_event_conf_t;
 
@@ -407,7 +410,7 @@
            }
 
 
-extern int                    ngx_event_flags;
+extern ngx_uint_t             ngx_event_flags;
 extern ngx_module_t           ngx_events_module;
 extern ngx_module_t           ngx_event_core_module;
 
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index d1942d5..41794be 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -14,11 +14,6 @@
 static size_t ngx_accept_log_error(void *data, char *buf, size_t len);
 
 
-ngx_atomic_t  *ngx_accept_mutex_ptr;
-ngx_atomic_t  *ngx_accept_mutex;
-ngx_uint_t     ngx_accept_mutex_held;
-
-
 void ngx_event_accept(ngx_event_t *ev)
 {
     ngx_uint_t             instance, rinstance, winstance, accepted;
diff --git a/src/event/ngx_event_timer.h b/src/event/ngx_event_timer.h
index 21f261f..0eae570 100644
--- a/src/event/ngx_event_timer.h
+++ b/src/event/ngx_event_timer.h
@@ -67,17 +67,28 @@
 
 ngx_inline static void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer)
 {
-    if (ev->timer_set) {
-        ngx_del_timer(ev);
-    }
+    ngx_int_t  key;
 
-    ev->rbtree_key = (ngx_int_t)
+    key = (ngx_int_t)
               (ngx_elapsed_msec / NGX_TIMER_RESOLUTION * NGX_TIMER_RESOLUTION
                                               + timer) / NGX_TIMER_RESOLUTION;
 #if 0
                              (ngx_elapsed_msec + timer) / NGX_TIMER_RESOLUTION;
 #endif
 
+    if (ev->timer_set) {
+        if (key - ev->rbtree_key < 50) {
+            ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0,
+                           "event timer: %d, old: %d, new: %d",
+                            ngx_event_ident(ev->data), ev->rbtree_key, key);
+            return;
+        }
+
+        ngx_del_timer(ev);
+    }
+
+    ev->rbtree_key = key;
+
     ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
                    "event timer add: %d: %d",
                     ngx_event_ident(ev->data), ev->rbtree_key);
diff --git a/src/http/modules/proxy/ngx_http_proxy_handler.c b/src/http/modules/proxy/ngx_http_proxy_handler.c
index 8f0336a..0dba23f 100644
--- a/src/http/modules/proxy/ngx_http_proxy_handler.c
+++ b/src/http/modules/proxy/ngx_http_proxy_handler.c
@@ -60,13 +60,6 @@
       0,
       NULL },
 
-    { ngx_string("proxy_request_buffer_size"),
-      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_proxy_loc_conf_t, request_buffer_size),
-      NULL },
-
     { ngx_string("proxy_connect_timeout"),
       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
       ngx_conf_set_msec_slot,
@@ -781,7 +774,6 @@
 
     */
 
-    conf->request_buffer_size = NGX_CONF_UNSET_SIZE;
     conf->connect_timeout = NGX_CONF_UNSET_MSEC;
     conf->send_timeout = NGX_CONF_UNSET_MSEC;
 
@@ -822,8 +814,6 @@
     ngx_http_proxy_loc_conf_t *prev = parent;
     ngx_http_proxy_loc_conf_t *conf = child;
 
-    ngx_conf_merge_size_value(conf->request_buffer_size,
-                              prev->request_buffer_size, 8192);
     ngx_conf_merge_msec_value(conf->connect_timeout,
                               prev->connect_timeout, 60000);
     ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 30000);
diff --git a/src/http/modules/proxy/ngx_http_proxy_handler.h b/src/http/modules/proxy/ngx_http_proxy_handler.h
index d204cac..853aa76 100644
--- a/src/http/modules/proxy/ngx_http_proxy_handler.h
+++ b/src/http/modules/proxy/ngx_http_proxy_handler.h
@@ -48,7 +48,6 @@
 
 
 typedef struct {
-    size_t                           request_buffer_size;
     size_t                           header_buffer_size;
     size_t                           busy_buffers_size;
     size_t                           max_temp_file_size;
diff --git a/src/http/modules/proxy/ngx_http_proxy_upstream.c b/src/http/modules/proxy/ngx_http_proxy_upstream.c
index 00a0780..bd4befd 100644
--- a/src/http/modules/proxy/ngx_http_proxy_upstream.c
+++ b/src/http/modules/proxy/ngx_http_proxy_upstream.c
@@ -86,7 +86,6 @@
     tf->warn = "a client request body is buffered to a temporary file";
     /* tf->persistent = 0; */
 
-    rb->buf_size = p->lcf->request_buffer_size;
     rb->handler = ngx_http_proxy_init_upstream;
     rb->data = p;
     /* rb->bufs = NULL; */
@@ -1179,7 +1178,10 @@
     ep->temp_file->file.log = r->connection->log;
     ep->temp_file->path = p->lcf->temp_path;
     ep->temp_file->pool = r->pool;
-    if (!p->cachable) {
+
+    if (p->cachable) {
+        ep->temp_file->persistent = 1;
+    } else {
         ep->temp_file->warn = "an upstream response is buffered "
                               "to a temporary file";
     }
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 1f449e2..3ae6182 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -149,6 +149,13 @@
       offsetof(ngx_http_core_loc_conf_t, client_max_body_size),
       NULL },
 
+    { ngx_string("client_body_buffer_size"),
+      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_core_loc_conf_t, client_body_buffer_size),
+      NULL },
+
     { ngx_string("client_body_timeout"),
       NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
       ngx_conf_set_msec_slot,
@@ -1181,6 +1188,7 @@
     */
 
     lcf->client_max_body_size = NGX_CONF_UNSET_SIZE;
+    lcf->client_body_buffer_size = NGX_CONF_UNSET_SIZE;
     lcf->client_body_timeout = NGX_CONF_UNSET_MSEC;
     lcf->sendfile = NGX_CONF_UNSET;
     lcf->tcp_nopush = NGX_CONF_UNSET;
@@ -1261,6 +1269,8 @@
 
     ngx_conf_merge_size_value(conf->client_max_body_size,
                               prev->client_max_body_size, 10 * 1024 * 1024);
+    ngx_conf_merge_size_value(conf->client_body_buffer_size,
+                              prev->client_body_buffer_size, 8192);
     ngx_conf_merge_msec_value(conf->client_body_timeout,
                               prev->client_body_timeout, 60000);
     ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0);
diff --git a/src/http/ngx_http_core_module.h b/src/http/ngx_http_core_module.h
index 3af3ed4..130106b 100644
--- a/src/http/ngx_http_core_module.h
+++ b/src/http/ngx_http_core_module.h
@@ -124,6 +124,7 @@
     size_t        client_max_body_size;    /* client_max_body_size */
     size_t        send_lowat;              /* send_lowat */
     size_t        discarded_buffer_size;   /* discarded_buffer_size */
+    size_t        client_body_buffer_size; /* client_body_buffer_size */
 
     ngx_msec_t    client_body_timeout;     /* client_body_timeout */
     ngx_msec_t    send_timeout;            /* send_timeout */
diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h
index a316153..5e127e8 100644
--- a/src/http/ngx_http_request.h
+++ b/src/http/ngx_http_request.h
@@ -155,7 +155,6 @@
     ngx_chain_t       *bufs;
     ngx_hunk_t        *buf;
     size_t             rest;
-    size_t             buf_size;
     void             (*handler) (void *data); 
     void              *data;
 } ngx_http_request_body_t;
diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c
index 9f1260c..c4aada5 100644
--- a/src/http/ngx_http_request_body.c
+++ b/src/http/ngx_http_request_body.c
@@ -11,10 +11,10 @@
 
 ngx_int_t ngx_http_read_client_request_body(ngx_http_request_t *r)
 {
-    ssize_t       size;
-    ngx_hunk_t   *h;
-    ngx_chain_t  *cl;
-
+    ssize_t                    size;
+    ngx_hunk_t                *h;
+    ngx_chain_t               *cl;
+    ngx_http_core_loc_conf_t  *clcf;
 
     size = r->header_in->last - r->header_in->pos;
 
@@ -47,15 +47,18 @@
     }
 
 
+    clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
+
     r->request_body->rest = r->headers_in.content_length_n - size;
 
     if (r->request_body->rest
-                < r->request_body->buf_size + (r->request_body->buf_size >> 2))
+                             < clcf->client_body_buffer_size
+                                        + (clcf->client_body_buffer_size >> 2))
     {
         size = r->request_body->rest;
 
     } else {
-        size = r->request_body->buf_size;
+        size = clcf->client_body_buffer_size;
     }
 
     ngx_test_null(r->request_body->buf, ngx_create_temp_hunk(r->pool, size),
diff --git a/src/http/ngx_http_write_filter.c b/src/http/ngx_http_write_filter.c
index 1091d75..5fa144f 100644
--- a/src/http/ngx_http_write_filter.c
+++ b/src/http/ngx_http_write_filter.c
@@ -62,7 +62,7 @@
     ngx_http_write_filter_commands,        /* module directives */
     NGX_HTTP_MODULE,                       /* module type */
     ngx_http_write_filter_init,            /* init module */
-    NULL                                   /* init child */
+    NULL                                   /* init process */
 };
 
 
@@ -82,7 +82,8 @@
                             sizeof(ngx_http_write_filter_ctx_t), NGX_ERROR);
     }
 
-    size = flush = 0;
+    size = 0;
+    flush = 0;
     last = 0;
     ll = &ctx->out;
 
diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c
index fbbddc6..da452e3 100644
--- a/src/os/unix/ngx_files.c
+++ b/src/os/unix/ngx_files.c
@@ -101,6 +101,20 @@
 }
 
 
+int ngx_open_tempfile(u_char *name, ngx_uint_t persistent)
+{
+    ngx_fd_t  fd;
+
+    fd = open((const char *) name, O_CREAT|O_EXCL|O_RDWR, 0600);
+
+    if (fd != -1 && !persistent) {
+        unlink((const char *) name);
+    }
+
+    return fd;
+}
+
+
 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl,
                                 off_t offset, ngx_pool_t *pool)
 {
diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h
index 9952a74..afc5367 100644
--- a/src/os/unix/ngx_files.h
+++ b/src/os/unix/ngx_files.h
@@ -30,8 +30,7 @@
 #define ngx_delete_file_n        "unlink()"
 
 
-#define ngx_open_tempfile(name, persistent)                                 \
-                         open((const char *) name, O_CREAT|O_EXCL|O_RDWR, 0600)
+int ngx_open_tempfile(u_char *name, ngx_uint_t persistent);
 #define ngx_open_tempfile_n      "open()"
 
 
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index 090733a..1ae4dee 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -65,17 +65,6 @@
     signo = 0;
     live = 0;
 
-    ngx_accept_mutex_ptr = mmap(NULL, sizeof(ngx_atomic_t),
-                                PROT_READ|PROT_WRITE,
-                                MAP_ANON|MAP_SHARED, -1, 0);
-
-    if (ngx_accept_mutex_ptr == NULL) {
-        ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
-                      "mmap(MAP_ANON|MAP_SHARED) failed");
-        /* fatal */
-        exit(2);
-    }
-
     for ( ;; ) {
         ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "new cycle");
 
@@ -378,11 +367,6 @@
 
     ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
 
-    if (ccf->worker_processes > 1) {
-        ngx_accept_mutex = ngx_accept_mutex_ptr;
-        ngx_accept_mutex_held = 1;
-    }
-
     if (ccf->group != (gid_t) NGX_CONF_UNSET) {
         if (setuid(ccf->group) == -1) {
             ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
@@ -485,8 +469,6 @@
 
     ngx_close_listening_sockets(cycle);
 
-    ngx_accept_mutex = NULL;
-
     for ( ;; ) {
         if (ngx_event_timer_rbtree == &ngx_event_timer_sentinel) {
             ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "exiting");
diff --git a/src/os/unix/ngx_readv_chain.c b/src/os/unix/ngx_readv_chain.c
index 9aee564..3ec3b27 100644
--- a/src/os/unix/ngx_readv_chain.c
+++ b/src/os/unix/ngx_readv_chain.c
@@ -68,7 +68,7 @@
     }
 
     ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
-                   "readv: %d:%d", io.nelts, iov->iov_len);
+                   "readv: %d, last:%d", io.nelts, iov->iov_len);
 
     rev = c->read;
 
