diff --git a/lib/group.php b/lib/group.php
index 88f0a2a032ccb60f98aa0980275459db538c1b03..d1a830730b755a18398e0c052281bad2482730b6 100644
--- a/lib/group.php
+++ b/lib/group.php
@@ -294,7 +294,13 @@ class OC_Group {
 	public static function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) {
 		$displayNames=array();
 		foreach(self::$_usedBackends as $backend) {
-			$displayNames = array_merge($backend->displayNamesInGroup($gid, $search, $limit, $offset), $displayNames);
+			if($backend->implementsActions(OC_GROUP_BACKEND_GET_DISPLAYNAME)) {
+				$displayNames = array_merge($backend->displayNamesInGroup($gid, $search, $limit, $offset), $displayNames);
+			} else {
+				$users = $backend->usersInGroup($gid, $search, $limit, $offset);
+				$names = array_combine($users, $users);
+				$displayNames = array_merge($names, $displayNames);
+			}
 		}
 		return $displayNames;
 	}
diff --git a/lib/group/backend.php b/lib/group/backend.php
index 26a784efb28bf2551e0c64d840bd4facbf48b820..2e17b5d0b7f9f805b7e5d47572e21d558286f7a0 100644
--- a/lib/group/backend.php
+++ b/lib/group/backend.php
@@ -33,6 +33,7 @@ define('OC_GROUP_BACKEND_CREATE_GROUP',      0x00000001);
 define('OC_GROUP_BACKEND_DELETE_GROUP',      0x00000010);
 define('OC_GROUP_BACKEND_ADD_TO_GROUP',      0x00000100);
 define('OC_GROUP_BACKEND_REMOVE_FROM_GOUP',  0x00001000);
+define('OC_GROUP_BACKEND_GET_DISPLAYNAME',   0x00010000);
 
 /**
  * Abstract base class for user management
@@ -43,6 +44,7 @@ abstract class OC_Group_Backend implements OC_Group_Interface {
 		OC_GROUP_BACKEND_DELETE_GROUP => 'deleteGroup',
 		OC_GROUP_BACKEND_ADD_TO_GROUP => 'addToGroup',
 		OC_GROUP_BACKEND_REMOVE_FROM_GOUP => 'removeFromGroup',
+		OC_GROUP_BACKEND_GET_DISPLAYNAME => 'displayNamesInGroup',
 	);
 
 	/**