diff --git a/swiftclient/client.py b/swiftclient/client.py
index 168bfeda..9c193067 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -1646,7 +1646,7 @@ class Connection:
                  starting_backoff=1, max_backoff=64, tenant_name=None,
                  os_options=None, auth_version="1", cacert=None,
                  insecure=False, cert=None, cert_key=None,
-                 ssl_compression=True, retry_on_ratelimit=False,
+                 ssl_compression=True, retry_on_ratelimit=True,
                  timeout=None, session=None, force_auth_retry=False):
         """
         :param authurl: authentication URL
@@ -1678,9 +1678,9 @@ class Connection:
                                 will be made. This may provide a performance
                                 increase for https upload/download operations.
         :param retry_on_ratelimit: by default, a ratelimited connection will
-                                   raise an exception to the caller. Setting
-                                   this parameter to True will cause a retry
-                                   after a backoff.
+                                   retry after a backoff. Setting this
+                                   parameter to False will cause an exception
+                                   to be raised to the caller.
         :param timeout: The connect timeout for the HTTP connection.
         :param session: A keystoneauth session object.
         :param force_auth_retry: reset auth info even if client got unexpected
diff --git a/swiftclient/service.py b/swiftclient/service.py
index ed0f40a7..440271b0 100644
--- a/swiftclient/service.py
+++ b/swiftclient/service.py
@@ -155,6 +155,7 @@ def _build_default_global_options():
         "user": environ.get('ST_USER'),
         "key": environ.get('ST_KEY'),
         "retries": 5,
+        "retry_on_ratelimit": True,
         "force_auth_retry": False,
         "os_username": environ.get('OS_USERNAME'),
         "os_user_id": environ.get('OS_USER_ID'),
@@ -270,10 +271,12 @@ def get_conn(options):
     """
     Return a connection building it from the options.
     """
+    options = dict(_default_global_options, **options)
     return Connection(options['auth'],
                       options['user'],
                       options['key'],
                       timeout=options.get('timeout'),
+                      retry_on_ratelimit=options['retry_on_ratelimit'],
                       retries=options['retries'],
                       auth_version=options['auth_version'],
                       os_options=options['os_options'],
diff --git a/test/unit/test_swiftclient.py b/test/unit/test_swiftclient.py
index ad2af50c..436245d8 100644
--- a/test/unit/test_swiftclient.py
+++ b/test/unit/test_swiftclient.py
@@ -2149,7 +2149,8 @@ class TestConnection(MockHttpTest):
         c.http_connection = self.fake_http_connection(
             200, 498,
             headers=auth_resp_headers)
-        conn = c.Connection('http://www.test.com/auth/v1.0', 'asdf', 'asdf')
+        conn = c.Connection('http://www.test.com/auth/v1.0', 'asdf', 'asdf',
+                            retry_on_ratelimit=False)
         with self.assertRaises(c.ClientException) as exc_context:
             conn.head_account()
         self.assertIn('Account HEAD failed', str(exc_context.exception))