diff --git a/novaclient/client.py b/novaclient/client.py
index 8f2e6254f..2def04aa4 100644
--- a/novaclient/client.py
+++ b/novaclient/client.py
@@ -95,6 +95,8 @@ class HTTPClient(httplib2.Http):
         self.projectid = projectid
         if not auth_url and auth_system and auth_system != 'keystone':
             auth_url = get_auth_system_url(auth_system)
+            if not auth_url:
+                raise exceptions.EndpointNotFound()
         self.auth_url = auth_url.rstrip('/')
         self.version = 'v1.1'
         self.region_name = region_name
diff --git a/tests/test_auth_plugins.py b/tests/test_auth_plugins.py
index e0a3b4f17..8b58da787 100644
--- a/tests/test_auth_plugins.py
+++ b/tests/test_auth_plugins.py
@@ -157,3 +157,27 @@ class AuthPluginTest(utils.TestCase):
             self.assertEquals(cs.client.auth_url, "http://faked/v2.0")
 
         test_auth_call()
+
+    def test_auth_system_raises_exception_when_missing_auth_url(self):
+        class MockAuthUrlEntrypoint(pkg_resources.EntryPoint):
+            def load(self):
+                return self.auth_url
+
+            def auth_url(self):
+                return None
+
+        def mock_iter_entry_points(_type):
+            return [MockAuthUrlEntrypoint("fakewithauthurl",
+                                          "fakewithauthurl.plugin",
+                                          ["auth_url"])]
+
+        @mock.patch.object(pkg_resources, "iter_entry_points",
+                           mock_iter_entry_points)
+        def test_auth_call():
+            with self.assertRaises(exceptions.EndpointNotFound):
+                cs = client.Client("username", "password", "project_id",
+                                   auth_system="fakewithauthurl",
+                                   no_cache=True)
+
+        test_auth_call()
+