diff --git a/htdocs/includes/login/functions_ldap.php b/htdocs/includes/login/functions_ldap.php
index f9c4355255989f2474a1a0014783c7b2a8038733..61898d32494b42e5d877851d88f178b356e50023 100644
--- a/htdocs/includes/login/functions_ldap.php
+++ b/htdocs/includes/login/functions_ldap.php
@@ -111,7 +111,7 @@ function check_user_password_ldap($usertotest,$passwordtotest)
 		{
 			$resultFetchLdapUser = $ldap->fetch($_POST["username"]);
 			// On stop si le mot de passe ldap doit etre modifie sur le domaine
-			if ($resultFetchLdapUser && $ldap->pwdlastset <= 0)
+			if ($resultFetchLdapUser == 1 && $ldap->pwdlastset <= 0)
 			{
 				dolibarr_syslog('functions_ldap::User '.$login.' must change password next logon');
 				if ($ldapdebug) print "DEBUG: User ".$login." must change password<br>\n";
diff --git a/htdocs/lib/ldap.class.php b/htdocs/lib/ldap.class.php
index fb4aba8b978b9a6da3af2d831536c3b8bb89fb46..db8ddda6bf4a2a36a6c904f054a09bbb3bdbbd59 100644
--- a/htdocs/lib/ldap.class.php
+++ b/htdocs/lib/ldap.class.php
@@ -900,6 +900,7 @@ class Ldap
         if (! $result)
         {
         	$this->error = ldap_errno($this->connection)." ".ldap_error($this->connection);
+        	return -1;
         }
         else
         {
@@ -916,6 +917,7 @@ class Ldap
         	$this->badpwdtime = $this->convert_time($this->ldap_utf8_decode($result[0]["badpasswordtime"][0]));
 
         	ldap_free_result($this->result);
+        	return 1;
         }
 	}