See the attached patch, created by diff -aur malloc.c malloc.c.new
--- malloc.c 2007-10-02 04:52:03.000000000 +0100
+++ malloc.c.new 2009-07-17 15:18:40.000000000 +0100
@@ -3567,6 +3567,8 @@
victim = _int_malloc(ar_ptr, bytes);
(void)mutex_unlock(&ar_ptr->mutex);
}
+#else
+ (void)mutex_unlock(&main_arena.mutex);
#endif
}
} else