diff --git a/googleapiclient/http.py b/googleapiclient/http.py
index a7f14b7..cc622a2 100644
--- a/googleapiclient/http.py
+++ b/googleapiclient/http.py
@@ -173,6 +173,8 @@
         'WSAETIMEDOUT', 'ETIMEDOUT', 'EPIPE', 'ECONNABORTED'}:
         raise
       exception = socket_error
+    except httplib2.ServerNotFoundError as server_not_found_error:
+      exception = server_not_found_error
 
     if exception:
       if retry_num == num_retries:
diff --git a/tests/test_http.py b/tests/test_http.py
index f6beff7..47f9c57 100644
--- a/tests/test_http.py
+++ b/tests/test_http.py
@@ -127,7 +127,9 @@
       self.num_errors -= 1
       if self.num_errors == 1:  # initial == 2
         raise ssl.SSLError()
-      else:  # initial != 2
+      if self.num_errors == 3:  # initial == 4
+        raise httplib2.ServerNotFoundError()
+      else:  # initial != 2,4
         if self.num_errors == 2:
           # first try a broken pipe error (#218)
           ex = socket.error()
@@ -495,14 +497,14 @@
 
   def test_media_io_base_download_retries_connection_errors(self):
     self.request.http = HttpMockWithErrors(
-        3, {'status': '200', 'content-range': '0-2/3'}, b'123')
+        4, {'status': '200', 'content-range': '0-2/3'}, b'123')
 
     download = MediaIoBaseDownload(
         fd=self.fd, request=self.request, chunksize=3)
     download._sleep = lambda _x: 0  # do nothing
     download._rand = lambda: 10
 
-    status, done = download.next_chunk(num_retries=3)
+    status, done = download.next_chunk(num_retries=4)
 
     self.assertEqual(self.fd.getvalue(), b'123')
     self.assertEqual(True, done)
@@ -839,12 +841,12 @@
   def test_retry_connection_errors_non_resumable(self):
     model = JsonModel()
     request = HttpRequest(
-        HttpMockWithErrors(3, {'status': '200'}, '{"foo": "bar"}'),
+        HttpMockWithErrors(4, {'status': '200'}, '{"foo": "bar"}'),
         model.response,
         u'https://www.example.com/json_api_endpoint')
     request._sleep = lambda _x: 0  # do nothing
     request._rand = lambda: 10
-    response = request.execute(num_retries=3)
+    response = request.execute(num_retries=4)
     self.assertEqual({u'foo': u'bar'}, response)
 
   def test_retry_connection_errors_resumable(self):
@@ -856,14 +858,14 @@
 
     request = HttpRequest(
         HttpMockWithErrors(
-            3, {'status': '200', 'location': 'location'}, '{"foo": "bar"}'),
+            4, {'status': '200', 'location': 'location'}, '{"foo": "bar"}'),
         model.response,
         u'https://www.example.com/file_upload',
         method='POST',
         resumable=upload)
     request._sleep = lambda _x: 0  # do nothing
     request._rand = lambda: 10
-    response = request.execute(num_retries=3)
+    response = request.execute(num_retries=4)
     self.assertEqual({u'foo': u'bar'}, response)
 
   def test_retry(self):
