diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php
index a41d244273457e325e35ff4febc32b2e7dee95fe..6a88a4ff82321692032dc79dfa1e081b576d2464 100644
--- a/library/Class/AdminVar.php
+++ b/library/Class/AdminVar.php
@@ -286,9 +286,9 @@ class Class_AdminVarLoader extends Storm_Model_Loader {
   protected function _getGlobalVars() {
     return [
             'FORCE_HTTPS' => Class_AdminVar_Meta::newOnOff($this->_('Forcer l\'accès au site par le protocole HTTPS. Nécessite l\'installation et la configuration appropriée du serveur Web')),
-            'LOGIN_THROUGH_SIGB_ONLY' => Class_AdminVar_Meta::newOnOff($this->_('Les abonnées peuvent se connecter uniquement via le webservice SIGB.')
+            'LOGIN_THROUGH_SIGB_ONLY' => Class_AdminVar_Meta::newOnOff($this->_('Les abonnées peuvent se connecter uniquement via le webservice du SIGB.')
                                                                        . '<br/>'
-                                                                       . $this->_('Désactive l\'enregistrement des mots de passes abonnés dans la base à la connexion via le webservice'))->bePrivate(),
+                                                                       . $this->_('De plus, à la connexion, l\'enregistrement des mots de passes des abonnés est désactivé.'))->bePrivate(),
             'NB_AFFICH_AVIS_PAR_AUTEUR'  => Class_AdminVar_Meta::newDefault($this->_('Nombre d\'avis maximum à afficher par utilisateur.')),
             'CLEF_GOOGLE_MAP' => Class_AdminVar_Meta::newDefault($this->_('Clef d\'activation pour le plan d\'accès google map. <a target="_blank" href="http://code.google.com/apis/maps/signup.html">Obtenir la clé google map</a>')),
             'REGISTER_OK' => Class_AdminVar_Meta::newEncodedData($this->_('Texte visible par l\'internaute après son inscription.')),
diff --git a/library/Class/Users.php b/library/Class/Users.php
index 332be379f56e885c69043abc620d037aa8eaa3bf..1626de1a33f69d7c40c00c90e2924949f85564ef 100644
--- a/library/Class/Users.php
+++ b/library/Class/Users.php
@@ -120,7 +120,7 @@ class UsersLoader extends Storm_Model_Loader {
    * @return bool
    */
   public function hasIdentity() {
-    return null != $this->getIdentity();
+    return null != Class_Users::getIdentity();
   }
 
 
@@ -128,7 +128,7 @@ class UsersLoader extends Storm_Model_Loader {
     if(!$user)
       return false;
 
-    if(!$logged_user = $this->getIdentity())
+    if(!$logged_user = Class_Users::getIdentity())
       return false;
 
     return $user->getId() == $logged_user->getId();
@@ -136,28 +136,28 @@ class UsersLoader extends Storm_Model_Loader {
 
 
   public function isCurrentUserAdmin() {
-    if (!$user = $this->getIdentity())
+    if (!$user = Class_Users::getIdentity())
       return false;
     return $user->isAdmin();
   }
 
 
   public function isCurrentUserSuperAdmin() {
-    if (!$user = $this->getIdentity())
+    if (!$user = Class_Users::getIdentity())
       return false;
     return $user->isSuperAdmin();
   }
 
 
   public function isCurrentUserCanAccesBackend() {
-    if (!$user = $this->getIdentity())
+    if (!$user = Class_Users::getIdentity())
       return false;
     return $user->canAccessBackend();
   }
 
 
   public function isCurrentUserCanConfigFront() {
-    if (!$user = $this->getIdentity())
+    if (!$user = Class_Users::getIdentity())
       return false;
     return $user->hasRightConfigFront();
   }
@@ -168,14 +168,14 @@ class UsersLoader extends Storm_Model_Loader {
    * @return bool
    */
   public function isCurrentUserCanEditArticle($article) {
-    if (!$user = $this->getIdentity())
+    if (!$user = Class_Users::getIdentity())
       return false;
     return $user->canEditArticle($article);
   }
 
 
   public function isCurrentUserAllowedToEditLibrary($library) {
-    if(!$user = $this->getIdentity())
+    if(!$user = Class_Users::getIdentity())
       return false;
     return $user->hasRightsForLibrary($library->getId());
   }
@@ -185,7 +185,7 @@ class UsersLoader extends Storm_Model_Loader {
     if(!$profile)
       return false;
 
-    if(!$user = $this->getIdentity())
+    if(!$user = Class_Users::getIdentity())
       return false;
 
     if((!$user->isAdminBib() && !$user->hasRightConfigFront())
@@ -201,7 +201,7 @@ class UsersLoader extends Storm_Model_Loader {
    * @return bool
    */
   public function isCurrentUserCanAccessAllBibs() {
-    if (!$user = $this->getIdentity())
+    if (!$user = Class_Users::getIdentity())
       return false;
     return $user->canAccessAllBibs();
   }
@@ -1021,8 +1021,7 @@ class Class_Users extends Storm_Model_Abstract {
   public function validate() {
     $this->checkAttribute('login',$this->getLogin(), $this->_("Vous devez compléter le champ 'Identifiant'"));
 
-    if (!Class_AdminVar::isLoginThroughSigbOnlyEnabled())
-      $this->checkAttribute('password',$this->getPassword(), $this->_("Vous devez compléter le champ 'Mot de passe'"));
+    $this->_checkPassword();
 
     $this->checkAttribute('login',mb_strlen($this->getLogin(),'UTF-8') <= 50, $this->_("Le champ 'Identifiant' doit être inférieur à 50 caractères"));
 
@@ -1057,6 +1056,17 @@ class Class_Users extends Storm_Model_Abstract {
   }
 
 
+  protected function _checkPassword() {
+    if (Class_AdminVar::isLoginThroughSigbOnlyEnabled()
+        && $this->isAbonne())
+      return;
+
+    $this->checkAttribute('password',
+                          $this->getPassword(),
+                          $this->_("Vous devez compléter le champ 'Mot de passe'"));
+  }
+
+
   public function deleteUser($id_user) {
     if ($user = $this->getLoader()->find($id_user))
       $user->delete();
diff --git a/tests/application/modules/opac/controllers/AuthControllerWithoutPasswordTest.php b/tests/application/modules/opac/controllers/AuthControllerWithoutPasswordTest.php
index 3d6970706b7428f1ea9e4a8374cf4389ee8ad9af..22ad1712f2bff501b5e10c8f965be2a4a6f6b7a4 100644
--- a/tests/application/modules/opac/controllers/AuthControllerWithoutPasswordTest.php
+++ b/tests/application/modules/opac/controllers/AuthControllerWithoutPasswordTest.php
@@ -31,6 +31,19 @@ abstract class AuthControllerWithoutPasswordTestCase extends AbstractControllerT
 
   public function setUp() {
     parent::setUp();
+
+    $logger = $this->mock()
+                   ->whenCalled('log')->answers(true)
+
+                   ->whenCalled('logError')
+                   ->willDo(
+                            function($url, $message) {
+                              throw new RuntimeException($url . ' :: ' . $message);
+                            });
+
+    Class_CommSigb::setLogger($logger);
+    Class_WebService_SIGB_AbstractService::setLogger($logger);
+
     Class_AdminVar::set('LOGIN_THROUGH_SIGB_ONLY', 1);
     ZendAfi_Auth::getInstance()->clearIdentity();
 
@@ -107,9 +120,12 @@ class AuthControllerWithoutPasswordKohaTest extends AuthControllerWithoutPasswor
 
   /** @test */
   public function userFooShouldBeLogged() {
-    $this->assertNotNull(Class_Users::getIdentity());
     $this->assertEquals('foo', Class_Users::getIdentity()->getLogin());
-    $this->assertEquals('5', Class_Users::getIdentity()->getId());
+  }
+
+
+  /** @test */
+  public function userFooPasswordShouldHaveNotBeenSet() {
     $this->assertEquals('', Class_Users::getIdentity()->getPassword());
   }
 }
@@ -127,21 +143,11 @@ class AuthControllerDispatchAbonnePretsWithoutPasswordKohaTest extends AuthContr
 
 
   protected function _setService() {
-    $logger = $this->mock()
-                   ->whenCalled('log')->answers(true)
-
-                   ->whenCalled('logError')
-                   ->willDo(
-                            function($url, $message) {
-                              throw new RuntimeException($url . ' :: ' . $message);
-                            });
-
-    Class_CommSigb::setLogger($logger);
-    Class_WebService_SIGB_AbstractService::setLogger($logger);
     $this->_mock_web_client = $this->mock()
                                    ->whenCalled('open_url')
                                    ->with('http://mon-koha-de-test.org?service=GetPatronInfo&patron_id=789&show_contact=1&show_loans=1&show_holds=1')
                                    ->answers('')
+
                                    ->beStrict();
 
     $this->_service = Class_WebService_SIGB_Koha::getService($this->_params);
@@ -151,13 +157,18 @@ class AuthControllerDispatchAbonnePretsWithoutPasswordKohaTest extends AuthContr
 
   /** @test */
   public function authenticateShouldNotBeCall() {
-    $this->assertFalse($this->_mock_web_client->methodHasBeenCalledWithParams('open_url', ['http://mon-koha-de-test.org?service=AuthenticatePatron&username=foo&password=']));
+    $this->assertFalse(
+                       $this->_mock_web_client
+                       ->methodHasBeenCalledWithParams('open_url',
+                                                       ['http://mon-koha-de-test.org?service=AuthenticatePatron&username=foo&password=']));
   }
 
 
   /** @test */
   public function patronInfoShouldBeCallWithPatronId789() {
-    $this->assertTrue($this->_mock_web_client->methodHasBeenCalledWithParams('open_url',
-                                                                              ['http://mon-koha-de-test.org?service=GetPatronInfo&patron_id=789&show_contact=1&show_loans=1&show_holds=1']));
+    $this->assertTrue(
+                      $this->_mock_web_client
+                      ->methodHasBeenCalledWithParams('open_url',
+                                                      ['http://mon-koha-de-test.org?service=GetPatronInfo&patron_id=789&show_contact=1&show_loans=1&show_holds=1']));
   }
 }
\ No newline at end of file