diff --git a/src/caosdb/common/administration.py b/src/caosdb/common/administration.py
index 7f7217135b2f37c0ae13fb85f94703e94b03e205..27a0cd0676c57562c05956a55e6e2788849a5f93 100644
--- a/src/caosdb/common/administration.py
+++ b/src/caosdb/common/administration.py
@@ -154,6 +154,7 @@ def _delete_role(name, **kwargs):
 
 def _set_roles(username, roles, realm=None, **kwargs):
     xml = etree.Element("Roles")
+    print(roles)
     for r in roles:
         xml.append(etree.Element("Role", name=r))
 
@@ -189,8 +190,9 @@ def _get_roles(username, realm=None, **kwargs):
         e.msg = "User does not exist."
         raise
     ret = set()
-    for r in etree.fromstring(body)[0]:
-        ret.add(r.get("name"))
+    for r in etree.fromstring(body).xpath('/Response/Roles')[0]:
+        if r.tag == "Role":
+            ret.add(r.get("name"))
     return ret