diff -ru apr/memory/unix/apr_tracking_memory_system.c apr_new/memory/unix/apr_tracking_memory_system.c
--- apr/memory/unix/apr_tracking_memory_system.c	Thu May 10 15:02:11 2001
+++ apr_new/memory/unix/apr_tracking_memory_system.c	Thu May 10 18:00:23 2001
@@ -159,6 +159,8 @@
   node--;
 
   *(node->ref) = node->next;
+  if (node->next != NULL)
+    node->next->ref = node->ref;
   
   return apr_memory_system_free(memory_system->parent_memory_system, node);
 }
@@ -179,6 +181,8 @@
     {
         node = tracking_memory_system->nodes;
         *(node->ref) = node->next;
+        if (node->next != NULL)
+          node->next->ref = node->ref;
         if ((rv = apr_memory_system_free(memory_system->parent_memory_system,
                                          node)) != APR_SUCCESS)
             return rv;
