diff --git a/VERSIONS_HOTLINE/157868 b/VERSIONS_HOTLINE/157868
new file mode 100644
index 0000000000000000000000000000000000000000..c5ff73557c092f234d4e706a102e1ed5c5b18735
--- /dev/null
+++ b/VERSIONS_HOTLINE/157868
@@ -0,0 +1 @@
+ - correctif #157868 : Facette dynamique sur domaine : correction de la requête de nettoyage des facettes dynamiques d'un domaine
\ No newline at end of file
diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php
index 4227b9ed1c99c4ff01b4c623073465162d758e6c..9614400cdddf32545327d16626f28b97c49762c6 100644
--- a/library/Class/AdminVar.php
+++ b/library/Class/AdminVar.php
@@ -491,7 +491,7 @@ Pour vous désabonner de la lettre d\'information, merci de cliquer sur le lien
             'OAI_ADMIN_EMAIL' => Class_AdminVar_Meta::newDefault($this->_('Contenu de la balise "adminEmail" dans la réponse au verb Identify, si vide sera tiré de la variable cosmogramme "mail_admin"')),
             'CUSTOM_DOMAIN_FORM' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la personnalisation des formulaires des domaines')),
             'ENABLE_DOMAINS_PER_LIBRARIES' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la répartition des domaines par bibliothèque dans l\'interface d\'administration')),
-            'ENABLE_FACETS_ON_DOMAINS' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la constrution de facettes dynamiques sur les domaines')),
+            'ENABLE_FACETS_ON_DOMAINS' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la construction de facettes dynamiques sur les domaines')),
     ];
   }
 
diff --git a/library/Class/CodifThesaurus.php b/library/Class/CodifThesaurus.php
index e7b6b857ed3f709270009bc9bf7342a27a735de8..1365b7cade3e74bf9e9fad2f7ab90c28f63f385c 100644
--- a/library/Class/CodifThesaurus.php
+++ b/library/Class/CodifThesaurus.php
@@ -19,10 +19,6 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
-
-
-
-
 class Class_CodifThesaurus extends Storm_Model_Abstract {
   use Trait_Translator, Trait_MemoryCleaner, Trait_Facetable, Trait_TreeNode;
 
diff --git a/library/Class/CodifThesaurus/Loader.php b/library/Class/CodifThesaurus/Loader.php
index 758faf95c899ac75320c7b9beefb2de926cc204b..ded53c1985a2e82c33ff98ccff9ad207f9f56a90 100644
--- a/library/Class/CodifThesaurus/Loader.php
+++ b/library/Class/CodifThesaurus/Loader.php
@@ -291,7 +291,7 @@ class Class_CodifThesaurus_Loader extends Storm_Model_Loader {
 
 
   public function deleteFacetsInRecordsForThesaurusTree(Class_CodifThesaurus $thesaurus, string $where='') : int {
-    return $this->_deleteFacetsInRecordsByPattern(static::WORD_BOUNDARY . $thesaurus->getFacetCode() . '\\\\d*' . static::WORD_BOUNDARY,
+    return $this->_deleteFacetsInRecordsByPattern(static::WORD_BOUNDARY . $thesaurus->getFacetCode() . '[a-zA-Z0-9]*' . static::WORD_BOUNDARY,
                                                   $where);
   }
 
diff --git a/library/Class/Cosmogramme/Integration/PhaseDynamicFacetsOnDomainIndex.php b/library/Class/Cosmogramme/Integration/PhaseDynamicFacetsOnDomainIndex.php
index a56f3753900ee8a5a9974b5c81d2df41eefb058e..f0169b730e2b712b344e269ac69089a12e3d1b41 100644
--- a/library/Class/Cosmogramme/Integration/PhaseDynamicFacetsOnDomainIndex.php
+++ b/library/Class/Cosmogramme/Integration/PhaseDynamicFacetsOnDomainIndex.php
@@ -37,8 +37,10 @@ class Class_Cosmogramme_Integration_PhaseDynamicFacetsOnDomainIndex
 
 
   protected function _execute() {
-    if (!Class_AdminVar::isModuleEnabled('ENABLE_FACETS_ON_DOMAINS'))
+    if (!Class_AdminVar::isModuleEnabled('ENABLE_FACETS_ON_DOMAINS')) {
+      $this->_log->info($this->_('Les facettes dynamiques sur les domaines ne sont pas activées'));
       return;
+    }
 
     array_map([$this, '_indexThesaurus'],
               Class_CodifThesaurus::findDomainFacets());
diff --git a/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php b/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php
index c56a80bbea4a60f1f432c8e42a12c8385870b7ff..47e11603a2498443f3425be7876e68bac2441a6e 100644
--- a/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php
+++ b/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php
@@ -265,7 +265,7 @@ class CmsControllerCustomFieldsNotIndexableMetaPostEditActionTest
                                 })
 
                        ->whenCalled('query')
-                       ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001\\\\d*\\\\b", ""))')
+                       ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001[a-zA-Z0-9]*\\\\b", ""))')
                        ->answers(100)
 
                        ->beStrict());
diff --git a/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php b/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php
index 47cb4cbeafdcbbe3413a27543f0140aca2da6893..8e45bcfcefa4cdc2d9b795c04057c1cfb6408cb6 100644
--- a/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php
+++ b/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php
@@ -345,7 +345,7 @@ class CustomFieldsControllerPostAddActionTest extends AbstractControllerTestCase
                        $this
                        ->mock()
                        ->whenCalled('query')
-                       ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001\\\\d*\\\\b", ""))')
+                       ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001[a-zA-Z0-9]*\\\\b", ""))')
                        ->answers(100)
 
                        ->beStrict());
diff --git a/tests/application/modules/admin/controllers/CustomFieldsMetaControllerTest.php b/tests/application/modules/admin/controllers/CustomFieldsMetaControllerTest.php
index 7f8cb8453697b837be355f9356758fdb41e6da4c..cf43fdffc05a494618f9f5f39aaa74e2386240f6 100644
--- a/tests/application/modules/admin/controllers/CustomFieldsMetaControllerTest.php
+++ b/tests/application/modules/admin/controllers/CustomFieldsMetaControllerTest.php
@@ -276,7 +276,7 @@ class CustomFieldsMetaControllerPostEditUnindexActionTest
                        $this
                        ->mock()
                        ->whenCalled('query')
-                       ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0002\\\\d*\\\\b", ""))')
+                       ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0002[a-zA-Z0-9]*\\\\b", ""))')
                        ->answers(100)
                        ->beStrict());
 
diff --git a/tests/library/Class/CodifThesaurusTest.php b/tests/library/Class/CodifThesaurusTest.php
index 371af6bcca669a93fbefb3b580578f32c887cee8..37666f10cc6108489950dc177942a8d1c0546de4 100644
--- a/tests/library/Class/CodifThesaurusTest.php
+++ b/tests/library/Class/CodifThesaurusTest.php
@@ -160,7 +160,7 @@ class CodifThesaurusDeleteTest extends ModelTestCase {
     Zend_Registry::set('sql', $sql);
     $sql
       ->whenCalled('query')
-      ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001\\\\d*\\\\b", ""))')
+      ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001[a-zA-Z0-9]*\\\\b", ""))')
       ->willDo(function() {
         Class_Notice::find(12)->setFacettes('T8 A3452');
         return 1;
diff --git a/tests/library/Class/Cosmogramme/Integration/PhaseDomainsTest.php b/tests/library/Class/Cosmogramme/Integration/PhaseDomainsTest.php
index af1d01578ed5abe6b1f8ab3528a98871b6b19822..6aaa46650e03a0be10be5a55022820b297d434cf 100644
--- a/tests/library/Class/Cosmogramme/Integration/PhaseDomainsTest.php
+++ b/tests/library/Class/Cosmogramme/Integration/PhaseDomainsTest.php
@@ -70,7 +70,7 @@ class PhaseDomainsCronTest extends PhaseDomainsTestCase {
     $sql = $this->mock()
 
                 ->whenCalled('query')
-                ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCCCC\\\\d*\\\\b", "")) where type_doc not in ("8", "9", "10") and type=1')
+                ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCCCC[a-zA-Z0-9]*\\\\b", "")) where type_doc not in ("8", "9", "10") and type=1')
                 ->answers(12)
 
                 ->whenCalled('query')
diff --git a/tests/library/Class/Migration/CleanCustomFieldsFacetsTest.php b/tests/library/Class/Migration/CleanCustomFieldsFacetsTest.php
index d1dc0f2e443b0f20741503cb6f9074d191a0eb13..4c7c3c697667d334031731766195466ac6c96e1e 100644
--- a/tests/library/Class/Migration/CleanCustomFieldsFacetsTest.php
+++ b/tests/library/Class/Migration/CleanCustomFieldsFacetsTest.php
@@ -38,7 +38,7 @@ class Class_Migration_CleanCustomFieldsFacetsTest extends ModelTestCase {
 
     $sql = $this->mock()
                 ->whenCalled('query')
-                ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001\\\\d*\\\\b", ""))')
+                ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHCFCF0001[a-zA-Z0-9]*\\\\b", ""))')
                 ->answers(100)
                 ->beStrict();
 
diff --git a/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsAdminTest.php b/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsAdminTest.php
index dbbb7b5ba23ad20b33c43719174ec81d5a96cd1e..7fa5c9ba3ad3319c01c497441b0589dcf7990377 100644
--- a/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsAdminTest.php
+++ b/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsAdminTest.php
@@ -394,7 +394,7 @@ class DynamicFacetOnDomainsAdminDeleteTest extends DynamicFacetOnDomainsAdminTes
     Zend_Registry::set('sql', $sql);
     $sql
       ->whenCalled('query')
-      ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHANIM\\\\d*\\\\b", ""))')
+      ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHANIM[a-zA-Z0-9]*\\\\b", ""))')
       ->willDo(function() {
         Class_Notice::find(4)->setFacettes('T1 A2 M2');
         return 1;
diff --git a/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsPhaseTest.php b/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsPhaseTest.php
index fcf33b7fbdda67564dbbd181ba32b73a4299d35a..78481d3d53f7927c835ae6b763cae3e8a0f579eb 100644
--- a/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsPhaseTest.php
+++ b/tests/scenarios/DynamicFacetOnDomains/DynamicFacetOnDomainsPhaseTest.php
@@ -21,7 +21,8 @@
 
 require_once(__DIR__ . '/DynamicFacetOnDomainsFixture.php');
 
-class DynamicFacetOnDomainsPhaseTest
+
+abstract class DynamicFacetOnDomainsPhaseTest
   extends Class_Cosmogramme_Integration_PhaseTestCase {
 
   protected function _getPreviousPhase() {
@@ -29,9 +30,30 @@ class DynamicFacetOnDomainsPhaseTest
   }
 
 
+  public function setUp() {
+    parent::setUp();
+
+    $this->_phase = $this->_buildPhase('DynamicFacetsOnDomainIndex')
+                         ->setMemoryCleaner(function() {})
+                         ->setPrinter($this->_printer)
+                         ->run();
+  }
+
+
+  /** @test */
+  public function logShouldNotContainsError() {
+    $this->assertNotError();
+  }
+}
+
+
+
+
+class DynamicFacetOnDomainsPhaseEnabledTest extends DynamicFacetOnDomainsPhaseTest {
   protected function _prepareFixtures() {
     parent::_prepareFixtures();
     Class_AdminVar::set('ENABLE_FACETS_ON_DOMAINS', true);
+
     (new DynamicFacetOnDomainsFixture)
       ->buildCodifications()
       ->buildDomains()
@@ -57,76 +79,53 @@ class DynamicFacetOnDomainsPhaseTest
       })
 
       ->whenCalled('query')
-      ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHANIM\\\\d*\\\\b", ""))')
+      ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHANIM[a-zA-Z0-9]*\\\\b", ""))')
       ->willDo(function() {
         Class_Notice::find(3)->setFacettes('T1 A3');
         return 1;
       })
 
       ->whenCalled('query')
-      ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHSUPP\\\\d*\\\\b", ""))')
+      ->with('update notices set facettes = clean_spaces(REGEXP_REPLACE(facettes, "\\\\bHSUPP[a-zA-Z0-9]*\\\\b", ""))')
       ->answers(0)
 
       ->beStrict();
   }
 
 
-  public function setUp() {
-    parent::setUp();
-
-    $this->_phase = $this->_buildPhase('DynamicFacetsOnDomainIndex')
-                         ->setMemoryCleaner(function() {})
-                         ->setPrinter($this->_printer)
-                         ->run();
-  }
-
-
   /** @test */
   public function logShouldContainsIndexationDesFacettesSurDomaines() {
-    $this->assertContains('Indexation des facettes sur les domaines',
-                          $this->_log_content);
+    $this->assertLogContains('Indexation des facettes sur les domaines');
   }
 
 
   /** @test */
   public function logShouldContainsTraitementThesaurusAnimaux() {
-    $this->assertContains('Traitement du thesaurus : Animaux',
-                          $this->_log_content);
+    $this->assertLogContains('Traitement du thesaurus : Animaux');
   }
 
 
   /** @test */
   public function logShouldContainsIndexationDomaineAnimaux() {
-    $this->assertContains('Indexation des notices du domaine : De la ferme',
-                          $this->_log_content);
+    $this->assertLogContains('Indexation des notices du domaine : De la ferme');
   }
 
 
   /** @test */
   public function logShouldContainsUneNoticeIndexée() {
-    $this->assertContains('1 notice(s) indexée(s)',
-                          $this->_log_content);
+    $this->assertLogContains('1 notice(s) indexée(s)');
   }
 
 
-
   /** @test */
   public function logShouldContainsTraitementDeleteFacetANIMinNotice() {
-    $this->assertContains('Suppression de la facette ANIM dans 1 notice(s)',
-                          $this->_log_content);
+    $this->assertLogContains('Suppression de la facette ANIM dans 1 notice(s)');
   }
 
 
   /** @test */
   public function logShouldContainsTraitementDeleteFacetANIM0003() {
-    $this->assertContains('Suppression de la facette inutilisée : ANIM0003-Oiseaux',
-                          $this->_log_content);
-  }
-
-
-  /** @test */
-  public function logShouldNotContainsError() {
-    $this->assertNotContains('Erreur', $this->_log_content);
+    $this->assertLogContains('Suppression de la facette inutilisée : ANIM0003-Oiseaux');
   }
 
 
@@ -193,8 +192,13 @@ class DynamicFacetOnDomainsPhaseDisabledTest extends DynamicFacetOnDomainsPhaseT
 
 
   /** @test */
-  public function logShouldNotContainsIndexationDeLaFacette() {
-    $this->assertNotContains('Indexation de la facette',
-                             $this->_log_content);
+  public function logShouldContainsIndexationDesFacettesSurDomaines() {
+    $this->assertLogContains('Indexation des facettes sur les domaines');
+  }
+
+
+  /** @test */
+  public function logShouldContainsDynamicFacetOnDomainsDisabled() {
+    $this->assertLogContains('Les facettes dynamiques sur les domaines ne sont pas activées');
   }
 }