diff --git a/src/gc.c b/src/gc.c
index 63887c5797af776d30e0bd673fa8c2d173277598..340b9949143678e99328f205cdb990b85ac083f0 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: gc.c,v 1.212 2003/03/30 02:08:08 mast Exp $
+|| $Id: gc.c,v 1.213 2003/03/30 13:11:24 grubba Exp $
 */
 
 #include "global.h"
@@ -33,7 +33,7 @@ struct callback *gc_evaluator_callback=0;
 
 #include "block_alloc.h"
 
-RCSID("$Id: gc.c,v 1.212 2003/03/30 02:08:08 mast Exp $");
+RCSID("$Id: gc.c,v 1.213 2003/03/30 13:11:24 grubba Exp $");
 
 int gc_enabled = 1;
 
@@ -2509,6 +2509,11 @@ size_t do_gc(void *ignored, int explicit_call)
 
   if(Pike_in_gc) return 0;
 
+#ifdef DEBUG_MALLOC
+  if (gc_keep_markers && marker_hash_table)
+    cleanup_markers();
+#endif
+
   if (gc_enabled <= 0 && (gc_enabled < 0 || !explicit_call)) {
     num_allocs = 0;
     alloc_threshold = GC_MAX_ALLOC_THRESHOLD;