diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ceae25be2f7146383196c096ab04a45f35ae08e4..24430b652e5c7b3e2533c015f35ba44dc19889bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
+
+	* cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
+
 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
 
 	* tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index 83c4c570c5a9625e5190b9aaaeb540f821fab586..7e70d1274e1667ed9b0cba9c4dfd05466576a17b 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -1468,6 +1468,9 @@ fix_loop_structure (bitmap changed_bbs)
   if (current_loops->state & LOOPS_HAVE_PREHEADERS)
     create_preheaders (CP_SIMPLE_PREHEADERS);
 
+  if (current_loops->state & LOOPS_HAVE_SIMPLE_LATCHES)
+    force_single_succ_latches ();
+
   if (current_loops->state & LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS)
     mark_irreducible_loops ();