diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index efc4a237b472b500f3d50ea109d67dbfc84c7450..71efb3670c2748acae9dfb18651dbe4fe07e08a4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-09-27  Michael Matz <matz@suse.de>
+
+	PR bootstrap/17698
+	PR bootstrap/17702
+	* bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
+	bmp_iter_and_init): Shift by bit_in_word.
+
 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
 
 	* aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
diff --git a/gcc/bitmap.h b/gcc/bitmap.h
index 0afc7f535a0afea3d7f46d8cefb0b74a792a7620..d368a9c3ac4e09b68666c52f544ffd0657fb4929 100644
--- a/gcc/bitmap.h
+++ b/gcc/bitmap.h
@@ -269,7 +269,7 @@ bmp_iter_single_init (bitmap_iterator *bi, bitmap bmp, unsigned min)
       bi->word = word_in_elt;
       bi->word_bit = min - bit_in_word;
       bi->bit = min;
-      bi->actual = bi->ptr1->bits[word_in_elt] >> bit_in_elt;
+      bi->actual = bi->ptr1->bits[word_in_elt] >> bit_in_word;
     }
   else
     {
@@ -400,9 +400,9 @@ bmp_iter_and_not_init (bitmap_iterator *bi, bitmap bmp1, bitmap bmp2,
 
       if (bi->ptr2 && bi->ptr2->indx == indx)
 	bi->actual = (bi->ptr1->bits[word_in_elt]
-		      & ~bi->ptr2->bits[word_in_elt]) >> bit_in_elt;
+                     & ~bi->ptr2->bits[word_in_elt]) >> bit_in_word;
       else
-	bi->actual = bi->ptr1->bits[word_in_elt] >> bit_in_elt;
+       bi->actual = bi->ptr1->bits[word_in_elt] >> bit_in_word;
     }
   else
     {
@@ -539,7 +539,7 @@ bmp_iter_and_init (bitmap_iterator *bi, bitmap bmp1, bitmap bmp2,
       bi->bit = min;
 
       bi->actual = (bi->ptr1->bits[word_in_elt]
-		    & bi->ptr2->bits[word_in_elt]) >> bit_in_elt;
+                   & bi->ptr2->bits[word_in_elt]) >> bit_in_word;
     }
   else
     {