diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 45d889bcf2fcc943cb42280b7cacffa09f9dc1d2..484a6e81c4304a5c583c1d5c823f12baeb85bd88 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-22  Ian Lance Taylor  <iant@google.com>
+
+	* lower-subreg.c (decompose_multiword_subregs): If we change an
+	insn, call remove_retval_note on it.
+
 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
 
 	* regs.h (end_hard_regno): New function.
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c
index e911205f460f4675a529805cd30f7aa0ee47b400..ac29272211d6d77584448eeb15901cfebe8d0f65 100644
--- a/gcc/lower-subreg.c
+++ b/gcc/lower-subreg.c
@@ -1128,6 +1128,8 @@ decompose_multiword_subregs (bool update_life)
 			{
 			  changed = true;
 
+			  remove_retval_note (insn);
+
 			  recog_memoized (insn);
 			  extract_insn (insn);
 
@@ -1157,6 +1159,8 @@ decompose_multiword_subregs (bool update_life)
 		      i = apply_change_group ();
 		      gcc_assert (i);
 
+		      remove_retval_note (insn);
+
 		      changed = true;
 		    }
 		}