diff --git a/tempest/manager.py b/tempest/manager.py
index c64227c..f5ed093 100644
--- a/tempest/manager.py
+++ b/tempest/manager.py
@@ -40,7 +40,7 @@
 ImagesClient = images_client.ImagesClient
 FlavorsClient = flavors_client.FlavorsClient
 ServersClient = servers_client.ServersClientJSON
-LimitsClient = limits_client.LimitsClient
+LimitsClient = limits_client.LimitsClientJSON
 ExtensionsClient = extensions_client.ExtensionsClient
 SecurityGroupsClient = security_groups_client.SecurityGroupsClient
 FloatingIPsClient = floating_ips_client.FloatingIPsClient
diff --git a/tempest/openstack.py b/tempest/openstack.py
index b9912f1..2e1ed27 100644
--- a/tempest/openstack.py
+++ b/tempest/openstack.py
@@ -23,8 +23,8 @@
 from tempest.services.network.json.network_client import NetworkClient
 from tempest.services.nova.json.images_client import ImagesClient
 from tempest.services.nova.json.flavors_client import FlavorsClient
+from tempest.services.nova.json.limits_client import LimitsClientJSON
 from tempest.services.nova.json.servers_client import ServersClientJSON
-from tempest.services.nova.json.limits_client import LimitsClient
 from tempest.services.nova.json.extensions_client import ExtensionsClient
 from tempest.services.nova.json.security_groups_client \
 import SecurityGroupsClient
@@ -33,6 +33,7 @@
 from tempest.services.nova.json.volumes_client import VolumesClient
 from tempest.services.nova.json.console_output_client \
 import ConsoleOutputsClient
+from tempest.services.nova.xml.limits_client import LimitsClientXML
 from tempest.services.nova.xml.servers_client import ServersClientXML
 
 LOG = logging.getLogger(__name__)
@@ -42,6 +43,11 @@
     "xml": ServersClientXML,
 }
 
+LIMITS_CLIENTS = {
+    "json": LimitsClientJSON,
+    "xml": LimitsClientXML,
+}
+
 
 class Manager(object):
 
@@ -84,12 +90,12 @@
 
         try:
             self.servers_client = SERVERS_CLIENTS[interface](*client_args)
+            self.limits_client = LIMITS_CLIENTS[interface](*client_args)
         except KeyError:
             msg = "Unsupported interface type `%s'" % interface
             raise exceptions.InvalidConfiguration(msg)
         self.flavors_client = FlavorsClient(*client_args)
         self.images_client = ImagesClient(*client_args)
-        self.limits_client = LimitsClient(*client_args)
         self.extensions_client = ExtensionsClient(*client_args)
         self.keypairs_client = KeyPairsClient(*client_args)
         self.security_groups_client = SecurityGroupsClient(*client_args)
diff --git a/tempest/services/nova/json/limits_client.py b/tempest/services/nova/json/limits_client.py
index 163b685..d0dc153 100644
--- a/tempest/services/nova/json/limits_client.py
+++ b/tempest/services/nova/json/limits_client.py
@@ -2,10 +2,10 @@
 from tempest.common.rest_client import RestClient
 
 
-class LimitsClient(RestClient):
+class LimitsClientJSON(RestClient):
 
     def __init__(self, config, username, password, auth_url, tenant_name=None):
-        super(LimitsClient, self).__init__(config, username, password,
+        super(LimitsClientJSON, self).__init__(config, username, password,
                                            auth_url, tenant_name)
         self.service = self.config.compute.catalog_type
 
diff --git a/tempest/services/nova/xml/limits_client.py b/tempest/services/nova/xml/limits_client.py
new file mode 100644
index 0000000..3f47484
--- /dev/null
+++ b/tempest/services/nova/xml/limits_client.py
@@ -0,0 +1,59 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+#
+# Copyright 2012 IBM
+# All Rights Reserved.
+#
+#    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 tempest.common.rest_client import RestClientXML
+from lxml import etree
+from lxml import objectify
+
+NS = "{http://docs.openstack.org/common/api/v1.0}"
+
+
+class LimitsClientXML(RestClientXML):
+
+    def __init__(self, config, username, password, auth_url, tenant_name=None):
+        super(LimitsClientXML, self).__init__(config, username, password,
+                auth_url, tenant_name)
+        self.service = self.config.compute.catalog_type
+
+    def get_limits(self):
+        resp, body = self.get("limits", self.headers)
+        body = objectify.fromstring(body)
+        lim = NS + 'absolute'
+        ret = {}
+
+        for el in body[lim].iterchildren():
+            attributes = el.attrib
+            if attributes['name'] == 'maxServerMeta':
+                ret['maxServerMeta'] = int(attributes['value'])
+            elif attributes['name'] == 'maxPersonality':
+                ret['maxPersonality'] = int(attributes['value'])
+            elif attributes['name'] == 'maxPersonalitySize':
+                ret['maxPersonalitySize'] = int(attributes['value'])
+
+        return resp, ret
+
+    def get_max_server_meta(self):
+        resp, limits_dict = self.get_limits()
+        return resp, limits_dict['maxServerMeta']
+
+    def get_personality_file_limit(self):
+        resp, limits_dict = self.get_limits()
+        return resp, limits_dict['maxPersonality']
+
+    def get_personality_size_limit(self):
+        resp, limits_dict = self.get_limits()
+        return resp, limits_dict['maxPersonalitySize']
