      }
  
      elt = (u_char *) a->elts + a->size * a->nelts;
-@@ -101,11 +104,10 @@
+@@ -95,11 +97,10 @@ void *
  ngx_array_push_n(ngx_array_t *a, ngx_uint_t n)
  {
      void        *elt, *new;

+#define NGINX_VER          "ngx_openresty/" NGINX_VERSION ".unknown (no pool)"
 
 #define NGINX_VAR          "NGINX"
diff -urx '*~' -x '*.swp' nginx-1.4.1/src/core/ngx_array.c nginx-1.4.1-patched/src/core/ngx_array.c
--- nginx-1.4.1/src/core/ngx_array.c	2012-02-06 04:02:59.000000000 +0800
+++ nginx-1.4.1-patched/src/core/ngx_array.c	2012-06-20 23:10:36.870722387 +0800
@@ -28,6 +28,7 @@
     a->size = size;
     a->nalloc = n;
     a->pool = p;
+    a->old_elts = NULL;
 
     return a;
 }
@@ -36,26 +37,30 @@
 void
 ngx_array_destroy(ngx_array_t *a)
 {

 
         if (n == NULL) {
             break;
@@ -83,172 +69,82 @@ ngx_destroy_pool(ngx_pool_t *pool)
 
 #endif
 
