diff --git a/ghc/rts/ProfHeap.c b/ghc/rts/ProfHeap.c
index 82857f965de7abaab4d9fada889b3dd924d9c15a..d69ac4b74b8e95a0655db83836eb308001fc3633 100644
--- a/ghc/rts/ProfHeap.c
+++ b/ghc/rts/ProfHeap.c
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: ProfHeap.c,v 1.16 2000/07/09 16:17:10 panne Exp $
+ * $Id: ProfHeap.c,v 1.17 2000/11/07 18:00:26 simonmar Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
@@ -496,9 +496,10 @@ heapCensus(void)
 	break;
 	
       case CONSTR:
-	if (((StgClosure *)p)->header.info == &DEAD_WEAK_info) {
-	  size = sizeofW(StgWeak);
-	  break;
+	if (((StgClosure *)p)->header.info == &DEAD_WEAK_info
+	    && !(LOOKS_LIKE_GHC_INFO(*(p + sizeW_fromITBL(info))))) {
+	    size = sizeofW(StgWeak);
+	    break;
 	}
 	/* else, fall through... */