diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d2ce7420ecc9d557108913d6787f845d6cb65b04..d42d66d6e45c3b45af783173a52c401deb299cd9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,8 @@
-2004-11-16  Devang Patel  <dpatel@apple.com>
+2004-11-22  Devang Patel  <dpatel@apple.com>
+
+	* tree-if-conv.c (clean_predicate_lists): Clean all basic blocks.
+	
+2004-11-22  Devang Patel  <dpatel@apple.com>
 
 	* tree-if-conv.c (if_convertable_phi_p): Rename to ...
 	(if_convertible_phi_p): ... new name.
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index a9261017b98e8da752576dc581353cdebc3ba4f8..0eee6d9acafd49db1b101ee497d9b5fad5d61755 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -657,11 +657,13 @@ add_to_dst_predicate_list (struct loop * loop, basic_block bb,
 static void
 clean_predicate_lists (struct loop *loop)
 {
-#ifdef ENABLE_CHECKING
-  gcc_assert (loop->num_nodes == 2 || loop->num_nodes == 1);
-#endif
-  loop->header->aux = NULL;
-  loop->latch->aux = NULL;
+  basic_block *bb;
+  unsigned int i;
+  bb = get_loop_body (loop);
+  for (i = 0; i < loop->num_nodes; i++)
+    bb[i]->aux = NULL;
+
+  free (bb);
 }
 
 /* Basic block BB has two predecessors. Using predecessor's aux field, set