--- gc-7.0/malloc.c~ 2007-06-06 22:48:35.000000000 +0200 +++ gc-7.0/malloc.c 2007-07-24 12:56:29.000000000 +0200 @@ -263,6 +263,9 @@ size_t lg; DCL_LOCK_STATE; + if (!GC_is_initialized) + GC_init(); + if(SMALL_OBJ(lb)) { lg = GC_size_map[lb]; opp = (void **)&(GC_objfreelist[lg]); --- gc-7.0/thread_local_alloc.c~ 2007-06-28 07:05:00.000000000 +0200 +++ gc-7.0/thread_local_alloc.c 2007-07-24 13:01:28.000000000 +0200 @@ -141,6 +141,9 @@ void *result; void **tiny_fl; + if (!GC_is_initialized) + GC_init(); + # if defined(REDIRECT_MALLOC) && !defined(USE_PTHREAD_SPECIFIC) GC_key_t k = GC_thread_key; if (EXPECT(0 == k, 0)) {