diff --git a/cosmogramme/php/classes/classe_abonne.php b/cosmogramme/php/classes/classe_abonne.php
index bbd292c9ee5bd4f40b1ff96a33945aa5051706c1..4ed646651f6ecc0c6abecb2e76361eb2bf3ede3f 100644
--- a/cosmogramme/php/classes/classe_abonne.php
+++ b/cosmogramme/php/classes/classe_abonne.php
@@ -157,18 +157,9 @@ class abonne
 
 
 	protected function findMatchingUserInDB($data) {
-		if (isset($data['ID_SIGB'])
-				&& ($data['ID_SIGB'])
-				&& ($user = Class_Users::findFirstBy(['id_sigb' => $data['ID_SIGB']])))
-			return $user;
-
-		$params_existing_user = ['login'=>$data["LOGIN"],
-														 'id_site'=>$data['ID_SITE']];
-
-		if (isset($data['ORDREABON']))
-			$params_existing_user['ordreabon'] = $data['ORDREABON'];
-
-		return Class_Users::findFirstBy($params_existing_user);
+    $user = Class_Users::newInstance($data);
+    $bib = Class_IntBib::find($data['ID_SITE']);
+    return Class_Users::findMatchingPatron($user,$bib);
 	}
 
 
diff --git a/library/Class/Users.php b/library/Class/Users.php
index f947c7eb02d5d5204ebf880bdafcc3f0b9c5633c..a17aa1ec544b53a44cbef69ace0cce38af780925 100644
--- a/library/Class/Users.php
+++ b/library/Class/Users.php
@@ -42,6 +42,33 @@ class UsersLoader extends Storm_Model_Loader {
 
   }
 
+  public function findMatchingPatron($patron,$bib) {
+    if (!$bib || !$patron)
+      return null;
+
+    if ($patron->getOrdreabon() &&
+        $user = Class_Users::findFirstBy(['login' => $patron->getLogin(),
+                                          'ordreabon' => $patron->getOrdreabon(),
+                                          'id_site' => $bib->getIdBib()]))
+      return $user;
+
+    if ($user = Class_Users::findFirstBy(['login' => $patron->getLogin(),
+                                          'id_sigb' => $patron->getIdSigb(),
+                                          'id_site' => $bib->getIdBib()]))
+      return $user;
+
+    if ($user = Class_Users::findFirstBy(['login' => $patron->getLogin(),
+                                          'id_site' => $bib->getIdBib()]))
+      return $user;
+
+    if ($patron->getIdSigb() &&
+        $user = Class_Users::findFirstBy(['id_site' => $bib->getIdBib(),
+                                          'id_sigb' => $patron->getIdSigb()]))
+      return $user;
+
+    return null;
+
+  }
 
   public function findAllLike($search, $by_right = null, $limit = 500) {
     $sql_template = 'select bib_admin_users.* from bib_admin_users ';
diff --git a/library/ZendAfi/Auth/Adapter/CommSigb.php b/library/ZendAfi/Auth/Adapter/CommSigb.php
index d3d36114c9a5e13f7b07c297a53a05b4caf84ac0..d05f5ee0c1e5f94e1a3ae951fb07e484dac19965 100644
--- a/library/ZendAfi/Auth/Adapter/CommSigb.php
+++ b/library/ZendAfi/Auth/Adapter/CommSigb.php
@@ -75,18 +75,8 @@ class ZendAfi_Auth_Adapter_CommSigb implements Zend_Auth_Adapter_Interface {
 
     if (!$this->_bib)
       return $new_user;
-
-    if ($user = Class_Users::findFirstBy(['login' => $user_from_sigb->getLogin(),
-                                          'id_sigb' => $user_from_sigb->getIdSigb(),
-                                          'id_site' => $this->_bib->getIdBib()]))
-      return $user;
-
-    if ($user = Class_Users::findFirstBy(['login' => $user_from_sigb->getLogin(),
-                                          'id_site' => $this->_bib->getIdBib()]))
-      return $user;
-
-    if ($user = Class_Users::findFirstBy(['id_site' => $this->_bib->getIdBib(),
-                                          'id_sigb' => $user_from_sigb->getIdSigb()]))
+    xdebug_break();
+    if ($user = Class_Users::findMatchingPatron($user_from_sigb, $this->_bib))
       return $user;
 
     return $new_user;
@@ -132,7 +122,6 @@ class ZendAfi_Auth_Adapter_CommSigb implements Zend_Auth_Adapter_Interface {
 
   public function authResult($user) {
     $result = new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $this->_identity);
-
     if(!$user)
       return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND, $this->_identity);
 
diff --git a/tests/library/ZendAfi/Auth/Adapter/AuthCommSigbTest.php b/tests/library/ZendAfi/Auth/Adapter/AuthCommSigbTest.php
index 561c2cf116b75050a0d7cae7a93a6d1d98c6eb33..b498932b0eb43f6bb32463b8c77f5d1f7f13b2b9 100644
--- a/tests/library/ZendAfi/Auth/Adapter/AuthCommSigbTest.php
+++ b/tests/library/ZendAfi/Auth/Adapter/AuthCommSigbTest.php
@@ -315,7 +315,7 @@ class AuthCommSigbSuccessfullAuthenticationWithExistingFamilleUserTest extends A
 
   /** @test */
   public function zorkGirlShouldBeAbonneSIGB() {
-    $this->assertTrue($this->_zork_girl->isAbonne());
+    $this->assertTrue(Class_Users::find(85)->isAbonne());
   }
 
 }