--- libguile/gc-mark.c.orig 2006-02-12 14:29:12.000000000 +0100 +++ libguile/gc-mark.c 2006-05-05 14:41:07.000000000 +0200 @@ -433,6 +433,8 @@ for (m = 0; m < n; ++m) { SCM obj = * (SCM *) &x[m]; + if ((scm_t_bits)obj & (sizeof (scm_t_cell) - 1)) + continue; long int segment = scm_i_find_heap_segment_containing_object (obj); if (segment >= 0) scm_gc_mark (obj);