diff --git a/Lib/socket.py b/Lib/socket.py
index 5578b13..045987c 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -198,10 +198,12 @@
     # XXX More docs
 
     def __init__(self, sock, mode):
-        if mode not in ("r", "w", "rw"):
+        if mode not in ("r", "w", "rw", "rb", "wb", "rwb"):
             raise ValueError("invalid mode: %r" % mode)
         io.RawIOBase.__init__(self)
         self._sock = sock
+        if "b" not in mode:
+            mode += "b"
         self._mode = mode
         self._reading = "r" in mode
         self._writing = "w" in mode
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index a11d3ba..80de93d 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -49,7 +49,7 @@
         # verify expected attributes exist
         f = self.f
 
-        self.assertEquals(f.mode, "w")
+        self.assertEquals(f.mode, "wb")
         self.assertEquals(f.closed, False)
 
         # verify the attributes are readonly
@@ -159,7 +159,7 @@
 
     def testModeStrings(self):
         # check invalid mode strings
-        for mode in ("", "aU", "wU+", "rb", "rt"):
+        for mode in ("", "aU", "wU+", "rw", "rt"):
             try:
                 f = _fileio._FileIO(TESTFN, mode)
             except ValueError:
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index 3493b8d..d28c024 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -150,7 +150,7 @@
     def test_mode(self):
         self.test_write()
         f = gzip.GzipFile(self.filename, 'r')
-        self.assertTrue(f.myfileobj.mode.startswith('r'))
+        self.assertEqual(f.myfileobj.mode, 'rb')
         f.close()
 
     def test_1647484(self):
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 79cfd8a..58203ed 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -1266,7 +1266,7 @@
 
     def test_attributes(self):
         f = io.open(support.TESTFN, "wb", buffering=0)
-        self.assertEquals(f.mode, "w")
+        self.assertEquals(f.mode, "wb")
         f.close()
 
         f = io.open(support.TESTFN, "U")
@@ -1274,18 +1274,18 @@
         self.assertEquals(f.buffer.name,     support.TESTFN)
         self.assertEquals(f.buffer.raw.name, support.TESTFN)
         self.assertEquals(f.mode,            "U")
-        self.assertEquals(f.buffer.mode,     "r")
-        self.assertEquals(f.buffer.raw.mode, "r")
+        self.assertEquals(f.buffer.mode,     "rb")
+        self.assertEquals(f.buffer.raw.mode, "rb")
         f.close()
 
         f = io.open(support.TESTFN, "w+")
         self.assertEquals(f.mode,            "w+")
-        self.assertEquals(f.buffer.mode,     "r+") # Does it really matter?
-        self.assertEquals(f.buffer.raw.mode, "r+")
+        self.assertEquals(f.buffer.mode,     "rb+") # Does it really matter?
+        self.assertEquals(f.buffer.raw.mode, "rb+")
 
         g = io.open(f.fileno(), "wb", closefd=False)
-        self.assertEquals(g.mode,     "w")
-        self.assertEquals(g.raw.mode, "w")
+        self.assertEquals(g.mode,     "wb")
+        self.assertEquals(g.raw.mode, "wb")
         self.assertEquals(g.name,     f.fileno())
         self.assertEquals(g.raw.name, f.fileno())
         f.close()
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index b2323fe..51f41a9 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -849,11 +849,11 @@
         self.assert_(not self.cli_file.closed)
 
     def testAttributes(self):
-        self.assertEqual(self.serv_file.mode, 'r')
+        self.assertEqual(self.serv_file.mode, 'rb')
         self.assertEqual(self.serv_file.name, self.cli_conn.fileno())
 
     def _testAttributes(self):
-        self.assertEqual(self.cli_file.mode, 'w')
+        self.assertEqual(self.cli_file.mode, 'wb')
         self.assertEqual(self.cli_file.name, self.serv_conn.fileno())
 
 class UnbufferedFileObjectClassTestCase(FileObjectClassTestCase):
