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