diff --git a/lisp/gencgc.c b/lisp/gencgc.c
index 0cd753c154e1297b1cafd484208f57f432d40a41..942e4a227c66255ead70698d2c58e937125d1b17 100644
--- a/lisp/gencgc.c
+++ b/lisp/gencgc.c
@@ -7,7 +7,7 @@
  *
  * Douglas Crosher, 1996, 1997, 1998, 1999.
  *
- * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/gencgc.c,v 1.75 2006/08/04 16:41:18 rtoy Exp $
+ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/gencgc.c,v 1.76 2006/08/11 00:16:15 rtoy Exp $
  *
  */
 
@@ -6066,7 +6066,9 @@ scavenge_newspace_generation(int generation)
              * scavenges stuff too.
              */
             
-            scan_weak_objects();
+            scan_weak_tables();
+	    weak_hash_tables = NIL;
+
 
 	    /* Record all new areas now. */
 	    record_new_objects = 2;
@@ -6102,7 +6104,9 @@ scavenge_newspace_generation(int generation)
              * This fixes a bug with weak hash tables, reported by
              * Lynn Quam, cmucl-imp, 2006-07-04.
              */ 
-            scan_weak_objects();
+            scan_weak_tables();
+	    weak_hash_tables = NIL;
+
             
 	    /* Flush the current regions updating the tables. */
 	    gc_alloc_update_page_tables(0, &boxed_region);