diff --git a/application/modules/admin/controllers/CatalogueController.php b/application/modules/admin/controllers/CatalogueController.php
index 727c710dd8aef3693e87c35c91b78965944d65fd..60417cd45417f93b718e3c221998d4adcf438c6c 100644
--- a/application/modules/admin/controllers/CatalogueController.php
+++ b/application/modules/admin/controllers/CatalogueController.php
@@ -47,8 +47,8 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
 
     $ret = array_merge($ret, $catalogue->getTestCatalogue());
 
-    if ($catalogue->isIndexable())
-      $catalogue->index();
+    if ($catalogue->hasIndexer())
+      $catalogue->indexWithBaskets();
 
     if (!$catalogue->isIndexable() && ($catalogue->numberOfPanierNotices() == 0))
       $this->view->error = $this->_('Le domaine ne peut pas être mis en favori utilisateur sans critères d\'indexation');
diff --git a/library/Class/Bib.php b/library/Class/Bib.php
index 21a07d6411bf036fa0bb5faaf1850bb0abf9dca5..32a8e4217b26b18f090736e1b97f3304cf220cff 100644
--- a/library/Class/Bib.php
+++ b/library/Class/Bib.php
@@ -851,7 +851,7 @@ class Class_Bib extends Storm_Model_Abstract {
   }
 
 
-  public function getFacet() {
+  public function asBookmark() {
     return Class_Bib::CODE_FACETTE . $this->getIdSite();
   }
 
diff --git a/library/Class/Catalogue.php b/library/Class/Catalogue.php
index 4f295276b1f751c05fa33f779ed636da5d091371..9c0f019e22a7ff0513eb3c10282fc3492b479e09 100644
--- a/library/Class/Catalogue.php
+++ b/library/Class/Catalogue.php
@@ -712,11 +712,6 @@ class Class_Catalogue extends Storm_Model_Abstract {
   }
 
 
-  public function getFacette() {
-    return $this->getFacetCode();
-  }
-
-
   public function getAllNoticeIdsForDomaine($nb_par_page,$numero_page) {
     $preferences = $this->toArray();
 
@@ -1275,11 +1270,16 @@ class Class_Catalogue extends Storm_Model_Abstract {
   }
 
 
-  public function getFacet() {
+  public function asBookmark() {
+    return $this->getThesaurusFacetCode();
+  }
+
+
+  public function getThesaurusFacetCode() {
     if(!$thesaurus = Class_CodifThesaurus::findThesaurusForCatalogue($this->getId()))
       return '';
 
-    return $thesaurus->getFacetteIndex();
+    return $thesaurus->getFacetCode();
   }
 
 
@@ -1339,6 +1339,19 @@ class Class_Catalogue extends Storm_Model_Abstract {
   }
 
 
+  public function indexWithBaskets() {
+    if (!$this->hasIndexer())
+      return $this;
+
+    $this->index();
+    foreach($this->getPanierNotices() as $basket) {
+      $basket->index();
+    }
+
+    return $this;
+  }
+
+
   public function getTitre() {
     return $this->getLibelle();
   }
diff --git a/library/Class/CodifAnnexe.php b/library/Class/CodifAnnexe.php
index f18c12368caaa2b278e9dfc625368d71b41bea2d..a9b366c02ffca1d0e914b9d4ca9b649109c97a58 100644
--- a/library/Class/CodifAnnexe.php
+++ b/library/Class/CodifAnnexe.php
@@ -97,7 +97,7 @@ class Class_CodifAnnexe extends Storm_Model_Abstract {
   }
 
 
-  public function getFacet() {
+  public function asBookmark() {
     return $this->getFacetteIndex();
   }
 
diff --git a/library/Class/IntBib.php b/library/Class/IntBib.php
index d0dc1ae2a7a84b5b7b4728b6cad9d8171e3efc0d..dbe58101bb04f7c9d74b82acd1386c5e45666382 100644
--- a/library/Class/IntBib.php
+++ b/library/Class/IntBib.php
@@ -184,7 +184,7 @@ class Class_IntBib extends Storm_Model_Abstract {
   }
 
 
-  public function getFacet() {
+  public function asBookmark() {
     return Class_Bib::CODE_FACETTE . $this->getIdBib();
   }
 
diff --git a/library/Class/MoteurRecherche.php b/library/Class/MoteurRecherche.php
index dc2ce5765f651bc011780969417d00eb1ea4b27a..bb698b7aeac6daef765c4e22e6b46b1d30a8493a 100644
--- a/library/Class/MoteurRecherche.php
+++ b/library/Class/MoteurRecherche.php
@@ -273,7 +273,7 @@ class Class_MoteurRecherche {
     if(!$domain_id)
       return '';
 
-    if(!$facette = Class_Catalogue::find($domain_id)->getFacette())
+    if(!$facette = Class_Catalogue::find($domain_id)->getFacetCode())
       return '';
 
     return 'MATCH(facettes) AGAINST(\'' . trim($facette) . '\' IN BOOLEAN MODE)';
diff --git a/library/Class/MoteurRecherche/Facettes.php b/library/Class/MoteurRecherche/Facettes.php
index 222313813808eaf4c9e574a2b6cd81a897e0684e..4d3369999b7bdbb1042ac74a749f5862f287c7df 100644
--- a/library/Class/MoteurRecherche/Facettes.php
+++ b/library/Class/MoteurRecherche/Facettes.php
@@ -206,7 +206,7 @@ class Class_MoteurRecherche_Facettes {
 
     $user_bookmarks_codes = array_map(function($model)
                                       {
-                                        return $model->getFacet();
+                                        return $model->asBookmark();
                                       },
                                       $user_bookmarks);
 
diff --git a/library/Class/Notice.php b/library/Class/Notice.php
index a471e638417fc72d88bc8400b51e0b50c58af6a2..1caa0519700de837198c4ec9ddc6b1fb1ab6c84d 100644
--- a/library/Class/Notice.php
+++ b/library/Class/Notice.php
@@ -1903,7 +1903,9 @@ class Class_Notice extends Storm_Model_Abstract {
       if (!Class_NoticeDomain::findFirstBy($params))
         Class_NoticeDomain::newInstance($params)->save();
 
-      $facets[] = $domain->getFacette();
+      $facets[] = $domain->getFacetCode();
+      if ($domain->hasIndexer())
+        $facets[] = $domain->getThesaurusFacetCode();
     }
 
     if (!empty($facets))
diff --git a/library/Class/NoticeDomain.php b/library/Class/NoticeDomain.php
index bc050d23353555f7bf5433e4f45496c886159795..b3d78fd86475e225d98387846388758aede8245d 100644
--- a/library/Class/NoticeDomain.php
+++ b/library/Class/NoticeDomain.php
@@ -75,10 +75,11 @@ class NoticeDomainLoader extends Storm_Model_Loader {
 
 
   public function updateRecordsFacette($domain_id) {
-    if ($catalogue = Class_Catalogue::find($domain_id)) {
-      foreach (Class_NoticeDomain::getRecordsForDomain($domain_id) as $record)
-        $record->updateFacette($catalogue->getFacette())->save();
-    }
+    if (!$catalogue = Class_Catalogue::find($domain_id))
+      return;
+
+    foreach (Class_NoticeDomain::getRecordsForDomain($domain_id) as $record)
+      $record->updateFacette($catalogue->getFacetCode())->save();
   }
 
 
@@ -153,12 +154,12 @@ class Class_NoticeDomain extends Storm_Model_Abstract {
     if (1 < $existing)
       return;
 
-    $record->deleteFacettes($domain->getFacette())->save();
+    $record->deleteFacettes($domain->getFacetCode())->save();
   }
 
 
   protected function _updateRecordFacets($record, $domain) {
-    $record->updateFacette($domain->getFacette())->save();
+    $record->updateFacette($domain->getFacetCode())->save();
   }
 
 
diff --git a/tests/library/Class/ArticleTest.php b/tests/library/Class/ArticleTest.php
index e773cd5676401ef7f27c3c8a3ad043cb4ab14265..5f2fd33fdaad095734f60a5d7e658a35d0e0709d 100644
--- a/tests/library/Class/ArticleTest.php
+++ b/tests/library/Class/ArticleTest.php
@@ -1184,7 +1184,8 @@ class ArticleIndexAllTest extends ModelTestCase {
 
   /** @test */
   public function recordShouldHaveExpectedFacette() {
-    $this->assertContains(Class_Catalogue::find(1)->getFacette(), Class_Notice::find(2)->getFacettes());
+    $this->assertContains(Class_Catalogue::find(1)->getFacetCode(),
+                          Class_Notice::find(2)->getFacettes());
   }
 
 
diff --git a/tests/library/Class/PanierNoticeTest.php b/tests/library/Class/PanierNoticeTest.php
index aff31c8a0793ff30f5d9f73fe6e63220bb022605..b762462b936177c141170b1fd4e2d37cd454b0ab 100644
--- a/tests/library/Class/PanierNoticeTest.php
+++ b/tests/library/Class/PanierNoticeTest.php
@@ -421,8 +421,10 @@ class PanierNoticeIndexAllTest extends ModelTestCase {
   public function setUp() {
     parent::setUp();
 
-    Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Catalogue')
-      ->whenCalled('saveThesaurus')->answers(true);
+    Zend_Registry::set('sql',
+                       Storm_Test_ObjectWrapper::mock()
+                       ->whenCalled('query')
+                       ->answers(null));
 
     $this->fixture('Class_Notice', ['id' => 4,
                                     'titre_principal' => 'Le Montespan',
@@ -490,7 +492,21 @@ class PanierNoticeIndexAllTest extends ModelTestCase {
 
   /** @test */
   public function facetOfRecordMontespanShouldContainsFacetQ1() {
-    $this->assertContains('Q1', Class_Notice::findFirstBy(['clef_alpha' => 'MONTESPAN'])->getFacettes());
+    $this->assertEquals('Q1',
+                        Class_Notice::findFirstBy(['clef_alpha' => 'MONTESPAN'])->getFacettes());
+  }
+
+
+  /** @test */
+  public function withBookmarkableDomainFacetOfRecordMontespanShouldContainsFacetHCCCC() {
+    $domain = Class_Catalogue::find(1);
+    $domain
+      ->setIndexer(true)
+      ->assertSave();
+    $domain->indexWithBaskets();
+
+    $this->assertEquals('Q1 HCCCC0001',
+                        Class_Notice::findFirstBy(['clef_alpha' => 'MONTESPAN'])->getFacettes());
   }
 
 
@@ -502,6 +518,7 @@ class PanierNoticeIndexAllTest extends ModelTestCase {
 
   /** @test */
   public function recordMonstespanShouldNotHaveFacetQ2() {
-    $this->assertNotContains('Q2', Class_Notice::findFirstBy(['clef_alpha' => 'MONTESPAN'])->getFacettes());
+    $this->assertNotContains('Q2',
+                             Class_Notice::findFirstBy(['clef_alpha' => 'MONTESPAN'])->getFacettes());
   }
 }