Index: gcc/expmed.c
===================================================================
--- gcc/expmed.c	2012-10-24 11:32:33.000000000 +0100
+++ gcc/expmed.c	2012-10-24 18:52:58.303570945 +0100
@@ -402,7 +402,7 @@ lowpart_bit_field_p (unsigned HOST_WIDE_
 		     enum machine_mode struct_mode)
 {
   if (BYTES_BIG_ENDIAN)
-    return (bitnum % BITS_PER_UNIT
+    return (bitnum % BITS_PER_UNIT == 0
 	    && (bitnum + bitsize == GET_MODE_BITSIZE (struct_mode)
 		|| (bitnum + bitsize) % BITS_PER_WORD == 0));
   else
