diff --git a/googleapiclient/http.py b/googleapiclient/http.py
index 5e582cf..e78f70f 100644
--- a/googleapiclient/http.py
+++ b/googleapiclient/http.py
@@ -178,14 +178,13 @@
         except _ssl_SSLError as ssl_error:
             exception = ssl_error
         except socket.timeout as socket_timeout:
-            # It's important that this be before socket.error as it's a subclass
+            # Needs to be before socket.error as it's a subclass of OSError
             # socket.timeout has no errorcode
             exception = socket_timeout
         except ConnectionError as connection_error:
-            # Needs to be before socket.error as it's a subclass of
-            # OSError (socket.error)
+            # Needs to be before socket.error as it's a subclass of OSError
             exception = connection_error
-        except socket.error as socket_error:
+        except OSError as socket_error:
             # errno's contents differ by platform, so we have to match by name.
             # Some of these same errors may have been caught above, e.g. ECONNRESET *should* be
             # raised as a ConnectionError, but some libraries will raise it as a socket.error
diff --git a/tests/test_http.py b/tests/test_http.py
index f87d7e1..6292dc1 100644
--- a/tests/test_http.py
+++ b/tests/test_http.py
@@ -137,7 +137,7 @@
         elif self.num_errors == 4:
             ex = httplib2.ServerNotFoundError()
         elif self.num_errors == 3:
-            ex = socket.error()
+            ex = OSError()
             ex.errno = socket.errno.EPIPE
         elif self.num_errors == 2:
             ex = ssl.SSLError()
@@ -145,14 +145,14 @@
             # Initialize the timeout error code to the platform's error code.
             try:
                 # For Windows:
-                ex = socket.error()
+                ex = OSError()
                 ex.errno = socket.errno.WSAETIMEDOUT
             except AttributeError:
                 # For Linux/Mac:
                 if PY3:
                     ex = socket.timeout()
                 else:
-                    ex = socket.error()
+                    ex = OSError()
                     ex.errno = socket.errno.ETIMEDOUT
 
         self.num_errors -= 1
@@ -170,7 +170,7 @@
             return httplib2.Response(self.success_json), self.success_data
         else:
             self.num_errors -= 1
-            ex = socket.error()
+            ex = OSError()
             # set errno to a non-retriable value
             try:
                 # For Windows:
@@ -943,7 +943,7 @@
         )
         request._sleep = lambda _x: 0  # do nothing
         request._rand = lambda: 10
-        with self.assertRaises(socket.error):
+        with self.assertRaises(OSError):
             response = request.execute(num_retries=3)
 
     def test_retry_connection_errors_non_resumable(self):
