--- mod_proxy.c~	2005-11-10 10:20:05.000000000 -0500
+++ mod_proxy.c	2006-03-23 12:05:43.000000000 -0500
@@ -37,6 +37,7 @@
 #define MAX(x,y) ((x) >= (y) ? (x) : (y))
 #endif
 
+static apr_array_header_t *global_balancers = NULL;
 /*
  * A Web proxy module. Stages:
  *
@@ -807,7 +808,7 @@
     ps->dirconn = apr_array_make(p, 10, sizeof(struct dirconn_entry));
     ps->allowed_connect_ports = apr_array_make(p, 10, sizeof(int));
     ps->workers = apr_array_make(p, 10, sizeof(proxy_worker));
-    ps->balancers = apr_array_make(p, 10, sizeof(proxy_balancer));
+    ps->balancers = global_balancers;
     ps->forward = NULL;
     ps->reverse = NULL;
     ps->domain = NULL;
@@ -847,7 +848,7 @@
     ps->dirconn = apr_array_append(p, base->dirconn, overrides->dirconn);
     ps->allowed_connect_ports = apr_array_append(p, base->allowed_connect_ports, overrides->allowed_connect_ports);
     ps->workers = apr_array_append(p, base->workers, overrides->workers);
-    ps->balancers = apr_array_append(p, base->balancers, overrides->balancers);
+    ps->balancers = global_balancers;
     ps->forward = overrides->forward ? overrides->forward : base->forward;
     ps->reverse = overrides->reverse ? overrides->reverse : base->reverse;
 
@@ -1912,6 +1913,8 @@
     /* child init handling */
     ap_hook_child_init(child_init, aszPred, NULL, APR_HOOK_MIDDLE);
 
+    global_balancers = apr_array_make(p, 10, sizeof(proxy_balancer));
+
 }
 
 module AP_MODULE_DECLARE_DATA proxy_module =
