diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2df70f0aba5761e0d21d1549c83f357022a809f2..b2f7e19c356b70f9b39e5ac5c7007ac30bf8039a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
+
+	* genrecog.c (make_insn_sequence): Correct position numbering
+	when filtering out match_scratch and match_dup.
+
 2011-07-20  Richard Guenther  <rguenther@suse.de>
 
 	* tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
diff --git a/gcc/genrecog.c b/gcc/genrecog.c
index 7c9298dfc60900ed02829aeeb4a26a5b15cabed6..0d8be8f760733a7d61c32472659e6b3507a06092 100644
--- a/gcc/genrecog.c
+++ b/gcc/genrecog.c
@@ -2345,7 +2345,7 @@ make_insn_sequence (rtx insn, enum routine_type type)
 	  if (GET_CODE (tmp) != MATCH_SCRATCH && GET_CODE (tmp) != MATCH_DUP)
 	    {
 	      c_test_pos = next_position (pos_ptr, &root_pos,
-					  POS_PEEP2_INSN, i);
+					  POS_PEEP2_INSN, j);
 	      XVECEXP (x, 0, j) = tmp;
 	      j++;
 	      pos_ptr = &c_test_pos->next;