diff --git a/application/modules/opac/controllers/RechercheController.php b/application/modules/opac/controllers/RechercheController.php
index befd0ac92267f0d89acb2f6ad3a12cac2216ca34..b61320222d90a34ec9e35574521563b11cba467e 100644
--- a/application/modules/opac/controllers/RechercheController.php
+++ b/application/modules/opac/controllers/RechercheController.php
@@ -153,13 +153,27 @@ class RechercheController extends ZendAfi_Controller_Action {
       return $this;
 
     $settings = new Class_User_Settings($user);
-
-    if ( $this->_getParam('save_user_settings', null)) {
+    if ($this->_getParam('save_user_settings', null)) {
+      $this->_saveOrderParam($settings, $criteria);
       $settings
-        ->setSearchOrder($criteria->getTri())
         ->setSearchLayout($criteria->getFormat())
         ->setSearchPageSize($criteria->getPageSize())
         ->save();
+
+      return $this;
+    }
+
+    if ($tri = $settings->getSearchOrder())
+      $criteria->setParam('tri', $tri);
+
+    return $this;
+  }
+
+
+  protected function _saveOrderParam(Class_User_Settings $settings,
+                                     Class_CriteresRecherche $criteria) : self {
+    if ($tri = $criteria->getParam('tri')) {
+      $settings->setSearchOrder($tri);
       return $this;
     }
 
diff --git a/tests/scenarios/Templates/TemplatesUserSettingsTest.php b/tests/scenarios/Templates/TemplatesUserSettingsTest.php
index bcc2a9d3b9cba4335be1a48c6d9ec8eee3dd021b..a5e98e47217520180435eb3967ae78ef0e4e298f 100644
--- a/tests/scenarios/Templates/TemplatesUserSettingsTest.php
+++ b/tests/scenarios/Templates/TemplatesUserSettingsTest.php
@@ -217,7 +217,7 @@ class TemplatesUserSettingsSearchSaveChiliAndSearchOrderTest extends TemplatesUs
 
 
   /** @test */
-  public function searchWithSaveUserSettingsAndNoOrderShouldUseAlphaTitreTest() {
+  public function searchWithSaveUserSettingsAndNoOrderShouldUseAlphaTitreAsc() {
     $this->dispatch('/recherche/simple/save_user_settings/1');
     $this->assertXPath('//div//select/option[@selected][@value="alpha_titre asc"]');
   }
@@ -226,7 +226,8 @@ class TemplatesUserSettingsSearchSaveChiliAndSearchOrderTest extends TemplatesUs
   /** @test */
   public function userSearchOrderShouldBeAlphaTitreAsc() {
     $this->dispatch('/recherche/simple/save_user_settings/1');
-    $this->assertEquals('alpha_titre asc', (new Class_User_Settings(Class_Users::getIdentity()))->getSearchOrder());
+    $this->assertEquals('alpha_titre asc',
+                        (new Class_User_Settings(Class_Users::getIdentity()))->getSearchOrder());
   }
 }