diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e0cfc6dcd6949123aabd3906a9e1a632df723d75..cfd031d5386e0cebdfee235eb382abb467c1401b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-11-23  Andrew Pinski  <pinskia@gmail.com>
+
+	* predict.c (tree_estimate_probability): Check to make
+	sure current_loops is non null before calling flow_loops_dump.
+
 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
 
 	* var-tracking.c (emit_note_insn_var_location): Revert previous patch.
diff --git a/gcc/predict.c b/gcc/predict.c
index 5e905430273b8fc7e1c7cf69752e0573201d18f9..03fba123052c80dd3e4dcaa2e6d1f05987d3fc67 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -1251,7 +1251,7 @@ tree_estimate_probability (void)
   basic_block bb;
 
   loop_optimizer_init (0);
-  if (dump_file && (dump_flags & TDF_DETAILS))
+  if (current_loops && dump_file && (dump_flags & TDF_DETAILS))
     flow_loops_dump (current_loops, dump_file, NULL, 0);
 
   add_noreturn_fake_exit_edges ();
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cec51b1d7961f27ea699995ed4974c984fc1528f..3fc471e1c6d40938f9f73c0c02e59c4692881252 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2006-11-23  Andrew Pinski  <pinskia@gmail.com>
+
+	* gcc.dg/tree-ssa/dump-1.c: New test.
+
 2006-11-23  David Ung <davidu@mips.com>
 	
 	* gcc.target/mips/mips.exp (dg-mips-options): Handle parsing of
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/dump-1.c b/gcc/testsuite/gcc.dg/tree-ssa/dump-1.c
new file mode 100644
index 0000000000000000000000000000000000000000..382f3231b71cc17363aad0145a52ce8fd33226a5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/dump-1.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-profile-details" } */
+
+int f(void)
+{
+  return 0;
+}
+
+/* { dg-final { cleanup-tree-dump "profile" } } */