diff --git a/libcloud/test/test_connection.py b/libcloud/test/test_connection.py
index 7a87aed..445cea1 100644
--- a/libcloud/test/test_connection.py
+++ b/libcloud/test/test_connection.py
@@ -35,6 +35,7 @@
 from libcloud.http import SignedHTTPSAdapter
 from libcloud.utils.retry import Retry
 from libcloud.utils.retry import RetryForeverOnRateLimitError
+from libcloud.utils.retry import RETRY_EXCEPTIONS
 from libcloud.utils.py3 import assertRaisesRegex
 
 
@@ -559,6 +560,32 @@
         self.assertEqual(mock_connect.call_count, 2,
                         'Retry logic failed')
 
+    @patch('libcloud.common.base.Connection.request')
+    def test_retry_on_all_default_retry_exception_classes(self, mock_connect):
+        con = Connection()
+        con.connection = Mock()
+        connect_method = 'libcloud.common.base.Connection.request'
+
+        self.retry_counter = 0
+
+        def mock_connect_side_effect(*args, **kwargs):
+            self.retry_counter += 1
+
+            if self.retry_counter < len(RETRY_EXCEPTIONS):
+                raise RETRY_EXCEPTIONS[self.retry_counter]
+
+            return 'success'
+
+        mock_connect.__name__ = 'mock_connect'
+        mock_connect.side_effect = mock_connect_side_effect
+        retry_request = Retry(timeout=0.6, retry_delay=0.1,
+                                backoff=1)
+        result = retry_request(con.request)(action='/')
+        self.assertEqual(result, "success")
+
+        self.assertEqual(mock_connect.call_count, len(RETRY_EXCEPTIONS),
+                        'Retry logic failed')
+
 
 class CertificateConnectionClassTestCase(unittest.TestCase):
     def setUp(self):
diff --git a/libcloud/utils/retry.py b/libcloud/utils/retry.py
index cb48d74..49418a4 100644
--- a/libcloud/utils/retry.py
+++ b/libcloud/utils/retry.py
@@ -40,7 +40,7 @@
 
 
 # Constants used by the ``retry`` class
-
+# All the time values (timeout, delay, backoff) are in seconds
 DEFAULT_TIMEOUT = 30  # default retry timeout
 DEFAULT_DELAY = 1  # default sleep delay used in each iterator
 DEFAULT_BACKOFF = 1  # retry backup multiplier
