diff --git a/designateclient/tests/test_v1/__init__.py b/designateclient/tests/test_v1/__init__.py
new file mode 100644
index 00000000..a662afec
--- /dev/null
+++ b/designateclient/tests/test_v1/__init__.py
@@ -0,0 +1,20 @@
+# Copyright 2015 Hewlett-Packard Development Company, L.P.
+#
+# Author: Kiall Mac Innes <kiall@hp.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+from designateclient.tests import base
+
+
+class APIV1TestCase(base.APITestCase):
+    VERSION = "1"
diff --git a/designateclient/tests/test_v1/test_client.py b/designateclient/tests/test_v1/test_client.py
new file mode 100644
index 00000000..e195191b
--- /dev/null
+++ b/designateclient/tests/test_v1/test_client.py
@@ -0,0 +1,104 @@
+# Copyright 2015 Hewlett-Packard Development Company, L.P.
+#
+# Author: Kiall Mac Innes <kiall@hp.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+from designateclient.tests import test_v1
+from designateclient import utils
+from designateclient import v1
+
+
+class TestClient(test_v1.APIV1TestCase):
+    def test_all_tenants(self):
+        # Create a client with the all_tenants flag set to True
+        client = v1.Client(all_tenants=True)
+
+        # Verify this has been picked up
+        self.assertTrue(client.all_tenants)
+
+    def test_all_tenants_not_suplied(self):
+        # Create a client without supplying any all_tenants flag
+        client = v1.Client()
+
+        # Verify all_tenants is False
+        self.assertFalse(client.all_tenants)
+        self.assertIsNotNone(client.all_tenants)
+
+    def test_all_tenants_through_session(self):
+        # Create a session with the all_tenants flag set to True
+        session = utils.get_session(
+            auth_url='Anything',
+            endpoint='Anything',
+            domain_id='Anything',
+            domain_name='Anything',
+            project_id='Anything',
+            project_name='Anything',
+            project_domain_name='Anything',
+            project_domain_id='Anything',
+            username='Anything',
+            user_id='Anything',
+            password='Anything',
+            user_domain_id='Anything',
+            user_domain_name='Anything',
+            token=None,
+            insecure=False,
+            cacert=None,
+            all_tenants=True)
+
+        # Create a client using the pre-created session
+        client = v1.Client(session=session)
+
+        # Verify the all_tenants flag has been picked up
+        self.assertTrue(client.all_tenants)
+
+    def test_edit_managed(self):
+        # Create a client with the edit_managed flag set to True
+        client = v1.Client(edit_managed=True)
+
+        # Verify this has been picked up
+        self.assertTrue(client.edit_managed)
+
+    def test_edit_managed_not_suplied(self):
+        # Create a client without supplying any edit_managed flag
+        client = v1.Client()
+
+        # Verify edit_managed is False
+        self.assertFalse(client.edit_managed)
+        self.assertIsNotNone(client.edit_managed)
+
+    def test_edit_managed_through_session(self):
+        # Create a session with the edit_managed flag set to True
+        session = utils.get_session(
+            auth_url='Anything',
+            endpoint='Anything',
+            domain_id='Anything',
+            domain_name='Anything',
+            project_id='Anything',
+            project_name='Anything',
+            project_domain_name='Anything',
+            project_domain_id='Anything',
+            username='Anything',
+            user_id='Anything',
+            password='Anything',
+            user_domain_id='Anything',
+            user_domain_name='Anything',
+            token=None,
+            insecure=False,
+            cacert=None,
+            edit_managed=True)
+
+        # Create a client using the pre-created session
+        client = v1.Client(session=session)
+
+        # Verify the edit_managed flag has been picked up
+        self.assertTrue(client.edit_managed)
diff --git a/designateclient/utils.py b/designateclient/utils.py
index 119b35e8..ea5d48bb 100644
--- a/designateclient/utils.py
+++ b/designateclient/utils.py
@@ -103,7 +103,7 @@ def get_columns(data):
 def get_session(auth_url, endpoint, domain_id, domain_name, project_id,
                 project_name, project_domain_name, project_domain_id, username,
                 user_id, password, user_domain_id, user_domain_name, token,
-                insecure, cacert, all_tenants=None, edit_managed=None):
+                insecure, cacert, all_tenants=False, edit_managed=False):
     # NOTE: all_tenants and edit_managed are here for backwards compat
     #       reasons, do not add additional modifiers here.
 
diff --git a/designateclient/v1/__init__.py b/designateclient/v1/__init__.py
index 73fef357..5c216dc6 100644
--- a/designateclient/v1/__init__.py
+++ b/designateclient/v1/__init__.py
@@ -69,14 +69,12 @@ class Client(object):
         #       backwards compat reasons, do not pull additional modifiers from
         #       here. Once removed, the kwargs above should default to False.
         if all_tenants is None:
-            self.all_tenants = getattr(self.session.session, 'all_tenants',
-                                       False)
+            self.all_tenants = getattr(session, 'all_tenants', False)
         else:
             self.all_tenants = all_tenants
 
         if edit_managed is None:
-            self.edit_managed = getattr(self.session.session, 'edit_managed',
-                                        False)
+            self.edit_managed = getattr(session, 'edit_managed', False)
         else:
             self.edit_managed = edit_managed