force gzip module to open files using 'b'inary mode.
closes patch #536278.
diff --git a/Lib/gzip.py b/Lib/gzip.py
index b2bbeda..9e198c7 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -35,6 +35,10 @@
 
     def __init__(self, filename=None, mode=None,
                  compresslevel=9, fileobj=None):
+        # guarantee the file is opened in binary mode on platforms
+        # that care about that sort of thing
+        if mode and 'b' not in mode:
+            mode += 'b'
         if fileobj is None:
             fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb')
         if filename is None:
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index a5660a9..d42dee6 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -18,7 +18,7 @@
 
 f = gzip.GzipFile(filename, 'wb') ; f.write(data1 * 50) ; f.close()
 
-f = gzip.GzipFile(filename, 'rb') ; d = f.read() ; f.close()
+f = gzip.GzipFile(filename, 'r') ; d = f.read() ; f.close()
 verify(d == data1*50)
 
 # Append to the previous file
@@ -75,4 +75,8 @@
     f.write('GZ\n')
 f.close()
 
+f = gzip.GzipFile(filename, 'r')
+verify(f.myfileobj.mode == 'rb')
+f.close()
+
 os.unlink(filename)