Index: apr_pools.c =================================================================== --- apr_pools.c (revision 536939) +++ apr_pools.c (working copy) @@ -39,6 +39,7 @@ #include /* for getpid */ #endif +static apr_pool_t *global_pool = NULL; /* * Magic numbers @@ -116,6 +117,7 @@ memset(new_allocator, 0, SIZEOF_ALLOCATOR_T); new_allocator->max_free_index = APR_ALLOCATOR_MAX_FREE_UNLIMITED; + new_allocator->owner = global_pool; *allocator = new_allocator; @@ -852,7 +854,7 @@ pool->owner_proc = (apr_os_proc_t)getnlmhandle(); #endif /* defined(NETWARE) */ - if ((pool->parent = parent) != NULL) { + if ((pool->parent = parent) != NULL && allocator->owner) { #if APR_HAS_THREADS apr_thread_mutex_t *mutex;