diff --git a/uffd/user/models.py b/uffd/user/models.py
index f55ffe6681352ee5f8a215ac15b3bd2848dd26c2..c666e14a3e644c686cb31a664d31f5d82a1dd583 100644
--- a/uffd/user/models.py
+++ b/uffd/user/models.py
@@ -115,19 +115,27 @@ class Group():
 	def __init__(self, gid=None, name='', members=None, description=''):
 		self.gid = gid
 		self.name = name
-		if isinstance(members, str):
-			members = [members]
 		self.members_ldap = members
 		self._members = None
 		self.description = description
 
 	@classmethod
 	def from_ldap(cls, ldapobject):
+		if 'description' in ldapobject:
+			description = ldapobject['description'].value
+		else:
+			description = ''
+		# if a group has no members, "uniqueMember" attribute does not exist
+		# if a group has exactly one member, ldap returns a string not an array with one element
+		# we sanitize this to always be an array
+		sanitized_members = ldapobject['uniqueMember']
+		if isinstance(sanitized_members, str):
+			sanitized_members = [sanitized_members]
 		return Group(
 				gid=ldapobject['gidNumber'].value,
 				name=ldapobject['cn'].value,
-				members=ldapobject['uniqueMember'],
-				description=ldapobject['description'].value if 'description' in ldapobject else '',
+				members=sanitized_members,
+				description=description,
 			)
 
 	@classmethod