diff -aur 3-3.old/src/slaballoc.c 3-3/src/slaballoc.c
--- 3-3.old/src/slaballoc.c	2005-02-21 10:16:34.000000000 +0100
+++ 3-3/src/slaballoc.c	2005-02-21 10:17:45.000000000 +0100
@@ -2823,7 +2823,7 @@
 } /* mark_block() */
 
 /*-------------------------------------------------------------------------*/
-static void
+static word_t *
 add_large_free (word_t *ptr, word_t block_size)
 
 /* The large memory block <ptr> with size <block_size> is free:
@@ -2850,6 +2850,8 @@
     /* Mark the block as free and add it to the freelist */
     build_block(ptr, block_size);
     add_to_free_list(ptr);
+    
+    return ptr;
 } /* add_large_free() */
 
 /*-------------------------------------------------------------------------*/
@@ -3089,7 +3091,7 @@
         block_size = chunk_size / SINT;
 
         /* Add block to free memory. */
-        add_large_free(ptr, block_size);
+        ptr = add_large_free(ptr, block_size);
     } /* end of creating a new chunk */
 
     /* ptr is now a pointer to a free block in the free list */
