diff --git a/openstackclient/common/clientmanager.py b/openstackclient/common/clientmanager.py
index 0542b47362..387721a453 100644
--- a/openstackclient/common/clientmanager.py
+++ b/openstackclient/common/clientmanager.py
@@ -110,13 +110,13 @@ class ClientManager(object):
 
         return
 
-    def get_endpoint_for_service_type(self, service_type):
+    def get_endpoint_for_service_type(self, service_type, region_name=None):
         """Return the endpoint URL for the service type."""
         # See if we are using password flow auth, i.e. we have a
         # service catalog to select endpoints from
         if self._service_catalog:
             endpoint = self._service_catalog.url_for(
-                service_type=service_type)
+                service_type=service_type, region_name=region_name)
         else:
             # Hope we were given the correct URL.
             endpoint = self._auth_url or self._url
diff --git a/openstackclient/compute/client.py b/openstackclient/compute/client.py
index dc50507eb2..d473295b71 100644
--- a/openstackclient/compute/client.py
+++ b/openstackclient/compute/client.py
@@ -68,7 +68,7 @@ def make_client(instance):
     else:
         # password flow
         client.client.management_url = instance.get_endpoint_for_service_type(
-            API_NAME)
+            API_NAME, region_name=instance._region_name)
         client.client.service_catalog = instance._service_catalog
     client.client.auth_token = instance._token
     return client
diff --git a/openstackclient/network/client.py b/openstackclient/network/client.py
index d3102da1eb..870fdad1db 100644
--- a/openstackclient/network/client.py
+++ b/openstackclient/network/client.py
@@ -35,7 +35,8 @@ def make_client(instance):
     LOG.debug('Instantiating network client: %s', network_client)
 
     if not instance._url:
-        instance._url = instance.get_endpoint_for_service_type("network")
+        instance._url = instance.get_endpoint_for_service_type(
+            "network", region_name=instance._region_name)
     return network_client(
         username=instance._username,
         tenant_name=instance._project_name,
diff --git a/openstackclient/volume/client.py b/openstackclient/volume/client.py
index f71fbe8bcd..58cb267e53 100644
--- a/openstackclient/volume/client.py
+++ b/openstackclient/volume/client.py
@@ -68,7 +68,7 @@ def make_client(instance):
     else:
         # password flow
         client.client.management_url = instance.get_endpoint_for_service_type(
-            API_NAME)
+            API_NAME, region_name=instance._region_name)
         client.client.service_catalog = instance._service_catalog
     client.client.auth_token = instance._token