diff --git a/apps/user_ldap/lib_ldap.php b/apps/user_ldap/lib_ldap.php
index 6f4c0b0aad94ab9d41d490de018281fdbf7a5dad..753243f2c4a35ba4cfabd5f7c775112ba1f5a0d2 100644
--- a/apps/user_ldap/lib_ldap.php
+++ b/apps/user_ldap/lib_ldap.php
@@ -380,12 +380,22 @@ class OC_LDAP {
 					SELECT 1
 					FROM '.$table.'
 					WHERE ldap_dn = ?
-						AND owncloud_name = ? )
+						OR owncloud_name = ? )
 		');
 
 		$res = $insert->execute(array($dn, $ocname, $dn, $ocname));
 
-		return !OCP\DB::isError($res);
+		if(OCP\DB::isError($res)) {
+			return false;
+		}
+
+		$insRows = $res->numRows();
+
+		if($insRows == 0) {
+			return false;
+		}
+
+		return true;
 	}
 
 	static public function fetchListOfUsers($filter, $attr) {