diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1b32e5051e0e7b1247981a2f98a4843fb217de9f..66a86e5c73127128214c9734ba49533f10340c7d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-07-26  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/45073
+	* gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
+	SSA updating on being in SSA form.
+
 2010-07-26  Richard Guenther  <rguenther@suse.de>
 
 	PR middle-end/45056
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 5953d6a7593c7f96f01b4d8dd5ebe157bb3ad770..a5301bad5ed726cb0089bdaba016d118b8afb51c 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -853,8 +853,11 @@ gimplify_and_update_call_from_tree (gimple_stmt_iterator *si_p, tree expr)
 	  gsi_next (si_p);
 	}
       new_stmt = gsi_stmt (i);
-      find_new_referenced_vars (new_stmt);
-      mark_symbols_for_renaming (new_stmt);
+      if (gimple_in_ssa_p (cfun))
+	{
+	  find_new_referenced_vars (new_stmt);
+	  mark_symbols_for_renaming (new_stmt);
+	}
       /* If the new statement has a VUSE, update it with exact SSA name we
          know will reach this one.  */
       if (gimple_vuse (new_stmt))
@@ -892,7 +895,7 @@ gimplify_and_update_call_from_tree (gimple_stmt_iterator *si_p, tree expr)
 	    SSA_NAME_DEF_STMT (gimple_vdef (stmt)) = laststore;
 	  update_stmt (laststore);
 	}
-      else
+      else if (gimple_in_ssa_p (cfun))
 	{
 	  unlink_stmt_vdef (stmt);
 	  release_defs (stmt);