diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 0962756228c8d193be92f08e7677bfdcf80bdde0..7778c37c7949506d1402fc582c9554a778907e25 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -261,4 +261,10 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
 		return (bool)((OC_USER_BACKEND_CHECK_PASSWORD | OC_USER_BACKEND_GET_HOME) & $actions);
 	}
 
+	/**
+	 * @return bool
+	 */
+	public function hasUserListings() {
+		return true;
+	}
 }
\ No newline at end of file
diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php
index a94be3354fcb75fe083f0441a1b961dac8286de5..b150e2f32c3181670bae94555bafea58553268f0 100644
--- a/apps/user_ldap/user_proxy.php
+++ b/apps/user_ldap/user_proxy.php
@@ -183,4 +183,12 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface {
 	public function deleteUser($uid) {
 		return false;
 	}
+
+	/**
+	 * @return bool
+	 */
+	public function hasUserListings() {
+		return true;
+	}
+
 }
\ No newline at end of file
diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php
index dd34e0ad2f1b62951ba1842ccf72d04aff55f745..6417e45434dc4c3f23c1c12438f59a38a8001e76 100755
--- a/apps/user_webdavauth/user_webdavauth.php
+++ b/apps/user_webdavauth/user_webdavauth.php
@@ -65,6 +65,12 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend {
 		return true;
 	}
 
+	/**
+	 * @return bool
+	 */
+	public function hasUserListings() {
+		return false;
+	}
 
 	/*
 	* we don“t know the users so all we can do it return an empty array here
diff --git a/lib/user.php b/lib/user.php
index 0ab224bb15f63b7bf9b9491666689f3ce13b0aed..16680be4aa02d79ce000d1ee6c614da738d5749a 100644
--- a/lib/user.php
+++ b/lib/user.php
@@ -555,7 +555,7 @@ class OC_User {
 
     public static function userExistsForCreation($uid) {
         foreach(self::$_usedBackends as $backend) {
-            if(!$backend->implementsActions(OC_USER_BACKEND_CREATE_USER))
+            if(!$backend->hasUserListings())
                 continue;
 
             $result=$backend->userExists($uid);
diff --git a/lib/user/backend.php b/lib/user/backend.php
index 56fa3195978fcf95bf373293d404d3b6910f0eb6..34de1e506985dd05f0675114206feec0753ffb9b 100644
--- a/lib/user/backend.php
+++ b/lib/user/backend.php
@@ -134,18 +134,26 @@ abstract class OC_User_Backend implements OC_User_Interface {
 		return $uid;
 	}
 	
-	/**
-	 * @brief Get a list of all display names
-	 * @returns array with  all displayNames (value) and the correspondig uids (key)
-	 *
-	 * Get a list of all display names and user ids.
-	 */
-	public function getDisplayNames($search = '', $limit = null, $offset = null) {
+	/**
+	 * @brief Get a list of all display names
+	 * @returns array with  all displayNames (value) and the corresponding uids (key)
+	 *
+	 * Get a list of all display names and user ids.
+	 */
+	public function getDisplayNames($search = '', $limit = null, $offset = null) {
 		$displayNames = array();
 		$users = $this->getUsers($search, $limit, $offset);
 		foreach ( $users as $user) {
 			$displayNames[$user] = $user;
 		}
-		return $displayNames;
+		return $displayNames;
+	}
+
+	/**
+	 * @brief Check if a user list is available or not
+	 * @return boolean if users can be listed or not
+	 */
+	public function hasUserListings() {
+		return false;
 	}
 }
diff --git a/lib/user/database.php b/lib/user/database.php
index 8dfd9534a96cc48f6abfa2d76869cb586f5eb04f..1a6a22d7a1617f7da1f509d384c64b81e8f4cb3c 100644
--- a/lib/user/database.php
+++ b/lib/user/database.php
@@ -111,30 +111,30 @@ class OC_User_Database extends OC_User_Backend {
 		}
 	}
 	
-	/**
-	 * @brief Set display name
-	 * @param $uid The username
-	 * @param $displayName The new display name
-	 * @returns true/false
-	 *
-	 * Change the display name of a user
+	/**
+	 * @brief Set display name
+	 * @param $uid The username
+	 * @param $displayName The new display name
+	 * @returns true/false
+	 *
+	 * Change the display name of a user
 	 */
 	public function setDisplayName( $uid, $displayName ) {
-		if( $this->userExists($uid) ) {
-			$query = OC_DB::prepare( 'UPDATE `*PREFIX*users` SET `displayname` = ? WHERE `uid` = ?' );
-			$query->execute( array( $displayName, $uid ));
-			return true;
-		}else{
-			return false;
-		}
+		if( $this->userExists($uid) ) {
+			$query = OC_DB::prepare( 'UPDATE `*PREFIX*users` SET `displayname` = ? WHERE `uid` = ?' );
+			$query->execute( array( $displayName, $uid ));
+			return true;
+		}else{
+			return false;
+		}
 	}
 
-	/**
-	 * @brief get display name of the user
-	 * @param $uid user ID of the user
-	 * @return display name
-	 */
-	public function getDisplayName($uid) {
+	/**
+	 * @brief get display name of the user
+	 * @param $uid user ID of the user
+	 * @return display name
+	 */
+	public function getDisplayName($uid) {
 		if( $this->userExists($uid) ) {
 			$query = OC_DB::prepare( 'SELECT displayname FROM `*PREFIX*users` WHERE `uid` = ?' );
 			$result = $query->execute( array( $uid ))->fetchAll();
@@ -144,36 +144,36 @@ class OC_User_Database extends OC_User_Backend {
 			} else {
 				return $uid;
 			}
-		}
+		}
 	}
 	
-	/**
-	 * @brief Get a list of all display names
-	 * @returns array with  all displayNames (value) and the correspondig uids (key)
-	 *
-	 * Get a list of all display names and user ids.
-	 */
+	/**
+	 * @brief Get a list of all display names
+	 * @returns array with  all displayNames (value) and the correspondig uids (key)
+	 *
+	 * Get a list of all display names and user ids.
+	 */
 	public function getDisplayNames($search = '', $limit = null, $offset = null) {
 		$displayNames = array();
-		$query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`displayname`) LIKE LOWER(?)', $limit, $offset);
+		$query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`displayname`) LIKE LOWER(?)', $limit, $offset);
 		$result = $query->execute(array($search.'%'));
-		$users = array();
-		while ($row = $result->fetchRow()) {
-			$displayNames[$row['uid']] = $row['displayname'];
+		$users = array();
+		while ($row = $result->fetchRow()) {
+			$displayNames[$row['uid']] = $row['displayname'];
 		}
 		
 		// let's see if we can also find some users who don't have a display name yet
-		$query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`uid`) LIKE LOWER(?)', $limit, $offset);
+		$query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`uid`) LIKE LOWER(?)', $limit, $offset);
 		$result = $query->execute(array($search.'%'));
-		while ($row = $result->fetchRow()) {
+		while ($row = $result->fetchRow()) {
 			$displayName =  trim($row['displayname'], ' ');
-			if ( empty($displayName) ) {
+			if ( empty($displayName) ) {
 				$displayNames[$row['uid']] = $row['uid'];
-			}
+			}
 		}
 		
-		
-		return $displayNames;
+		
+		return $displayNames;
 	}
 	
 	/**
@@ -256,4 +256,12 @@ class OC_User_Database extends OC_User_Backend {
 			return false;
 		}
 	}
+
+	/**
+	 * @return bool
+	 */
+	public function hasUserListings() {
+		return true;
+	}
+
 }
diff --git a/lib/user/dummy.php b/lib/user/dummy.php
index 4dbbc02b8888b0a282cefe892c178a06df960601..d63f60efbeb53c0a1adb61e6ce8c5df789672957 100644
--- a/lib/user/dummy.php
+++ b/lib/user/dummy.php
@@ -112,4 +112,11 @@ class OC_User_Dummy extends OC_User_Backend {
 	public function userExists($uid) {
 		return isset($this->users[$uid]);
 	}
+
+	/**
+	 * @return bool
+	 */
+	public function hasUserListings() {
+		return true;
+	}
 }
diff --git a/lib/user/interface.php b/lib/user/interface.php
index b4667633b5083b13996f678988b9938951f5a9f7..b1e19aea7fb2373badab0ddc512f6d18fe1a68d7 100644
--- a/lib/user/interface.php
+++ b/lib/user/interface.php
@@ -66,10 +66,15 @@ interface OC_User_Interface {
 
 	/**
 	 * @brief Get a list of all display names
-	 * @returns array with  all displayNames (value) and the correspondig uids (key)
+	 * @returns array with  all displayNames (value) and the corresponding uids (key)
 	 *
 	 * Get a list of all display names and user ids.
 	 */
 	public function getDisplayNames($search = '', $limit = null, $offset = null);
 
+	/**
+	 * @brief Check if a user list is available or not
+	 * @return boolean if users can be listed or not
+	 */
+	public function hasUserListings();
 }
\ No newline at end of file