A bugfix for r61813, it would fail if the data size was >=2**32.
diff --git a/Lib/gzip.py b/Lib/gzip.py
index f3cf9fe..2246c9d 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -15,10 +15,6 @@
 
 READ, WRITE = 1, 2
 
-def U32(i):
-    """Return the low-order 32 bits, as a non-negative int or long."""
-    return i & 0xFFFFFFFFL
-
 def write32u(output, value):
     # The L format writes the bit pattern correctly whether signed
     # or unsigned.
@@ -306,7 +302,7 @@
         if crc32 != self.crc:
             raise IOError("CRC check failed %s != %s" % (hex(crc32),
                                                          hex(self.crc)))
-        elif isize != self.size:
+        elif isize != (self.size & 0xffffffffL):
             raise IOError, "Incorrect length of data produced"
 
     def close(self):