diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 14b8b45cbfbc27247bf180c47885cbf08d2349c5..9d7d66931cd1b94d6a63dbf5723bfece8c78f718 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2010-04-26  Jan Hubicka  <jh@suse.cz>
+
+	* cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
+
 2010-04-26  Richard Guenther  <rguenther@suse.de>
 
 	PR lto/43080
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 7d65b0476efb9601eac63852d8d8ecf41051df7e..fcb96b2044c1c965a3373b3d18b5e9459ccc8299 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -2027,7 +2027,7 @@ cgraph_copy_node_for_versioning (struct cgraph_node *old_version,
 				 VEC(cgraph_edge_p,heap) *redirect_callers)
  {
    struct cgraph_node *new_version;
-   struct cgraph_edge *e, *new_e;
+   struct cgraph_edge *e;
    struct cgraph_edge *next_callee;
    unsigned i;
 
@@ -2046,10 +2046,10 @@ cgraph_copy_node_for_versioning (struct cgraph_node *old_version,
       also cloned.  */
    for (e = old_version->callees;e; e=e->next_callee)
      {
-       new_e = cgraph_clone_edge (e, new_version, e->call_stmt,
-				  e->lto_stmt_uid, 0, e->frequency,
-				  e->loop_nest, true);
-       new_e->count = e->count;
+       cgraph_clone_edge (e, new_version, e->call_stmt,
+			  e->lto_stmt_uid, REG_BR_PROB_BASE,
+			  CGRAPH_FREQ_BASE,
+			  e->loop_nest, true);
      }
    /* Fix recursive calls.
       If OLD_VERSION has a recursive call after the