diff -r 8201108e9cf0 src/misc2.c
--- a/src/misc2.c	Tue May 01 21:14:34 2012 +0200
+++ b/src/misc2.c	Mon May 14 01:25:58 2012 +0200
@@ -989,11 +989,17 @@
 {
     void *p;
 
-    mem_pre_free(&ptr);
-    mem_pre_alloc_s(&size);
-
-    p = realloc(ptr, size);
-
+    if (ptr == NULL)
+    {
+	mem_pre_alloc_s(&size);
+	p = malloc(size);
+    }
+    else
+    {
+	mem_pre_free(&ptr);
+	mem_pre_alloc_s(&size);
+	p = realloc(ptr, size);
+    }
     mem_post_alloc(&p, size);
 
     return p;
