diff --git a/src/http/modules/proxy/ngx_http_proxy_cache.c b/src/http/modules/proxy/ngx_http_proxy_cache.c
index e8e3b52..0bc7c61 100644
--- a/src/http/modules/proxy/ngx_http_proxy_cache.c
+++ b/src/http/modules/proxy/ngx_http_proxy_cache.c
@@ -216,6 +216,30 @@
 }
 
 
+#if 0
+
+static void ngx_http_proxy_cache_busy_lock(ngx_http_proxy_ctx_t *p)
+{
+    rc = ngx_http_busy_lock(p->lcf->busy_lock, p->cache->ctx.md5);
+
+    if (rc == NGX_OK) {
+        ngx_http_proxy_request_upstream(p);
+    }
+
+    if (rc == NGX_AGAIN) {
+        if (p->busy_lock_time) {
+            ngx_add_timer(p->request->connection->read, 1000);
+            return;
+        }
+    }
+
+    rc == NGX_ERROR
+    check waitn
+}
+
+#endif
+
+
 int ngx_http_proxy_send_cached_response(ngx_http_proxy_ctx_t *p)
 {
     int                  rc, len, i;
@@ -428,10 +452,21 @@
 
 int ngx_http_proxy_update_cache(ngx_http_proxy_ctx_t *p)
 {
+    ngx_event_pipe_t  *ep;
+
     if (p->cache == NULL) {
         return NGX_OK;
     }
 
+    ep = p->upstream->event_pipe;
+
+    if (p->cache->ctx.length == -1) {
+        /* TODO: test rc */
+        ngx_write_file(&ep->temp_file->file,
+                       (char *) &ep->read_length, sizeof(off_t),
+                       offsetof(ngx_http_cache_header_t, length));
+    }
+
     return ngx_http_cache_update_file(p->request, &p->cache->ctx,
-                               &p->upstream->event_pipe->temp_file->file.name);
+                                      &ep->temp_file->file.name);
 }
