diff --git a/cosmogramme/cosmozend/application/modules/cosmo/controllers/FacetsController.php b/cosmogramme/cosmozend/application/modules/cosmo/controllers/FacetsController.php
index 5ad208a1136953d84050d0f3d6ddcded430669e6..83f599228d802de64d8977fae24a2d8fd518226a 100644
--- a/cosmogramme/cosmozend/application/modules/cosmo/controllers/FacetsController.php
+++ b/cosmogramme/cosmozend/application/modules/cosmo/controllers/FacetsController.php
@@ -64,10 +64,10 @@ class Cosmo_FacetsController extends Zend_Controller_Action {
 
 		if (!$model->getIdThesaurus()) {
 			$libelle = preg_replace('/[^a-zA-Z0-9]/', '', $this->_getParam('libelle_facette'));
-			$libelle = substr($libelle, 0, 4);
+
 			$id_thesaurus = $this->generateNewIdThesaurusForLabel($libelle);
 			$model->setIdThesaurus($id_thesaurus);
-			$model->setCode($libelle);
+			$model->setCode($id_thesaurus);
 		}
 
 		$model->save();
@@ -76,10 +76,16 @@ class Cosmo_FacetsController extends Zend_Controller_Action {
 
 
 	protected function generateNewIdThesaurusForLabel($label) {
+    $id = substr(strtoupper($label), 0, 4);
+
+    if (strlen($id) == 4 && !Class_CodifThesaurus::findFirstBy(['id_thesaurus' => $id]))
+      return $id;
+
+    $label = substr(strtoupper($label), 0, 3);
 		$suffixes = array_merge(range(0, 9), range('a', 'z'));
 		while(!empty($suffixes)) {
 			$suffix = strtoupper(array_shift($suffixes));;
-			$id = sprintf("%'".$suffix."-4s", strtoupper($label));
+			$id = sprintf("%'".$suffix."-4s", $label);
 			if (!Class_CodifThesaurus::findFirstBy(['id_thesaurus' => $id]))
 				return $id;
 		}
diff --git a/cosmogramme/cosmozend/tests/application/modules/cosmo/controllers/DynamicFacetsControllerTest.php b/cosmogramme/cosmozend/tests/application/modules/cosmo/controllers/DynamicFacetsControllerTest.php
index 3bc761728f3eb7e16fd896a662cc8ce38f0d8043..c1e3cd08033938ccd23790f327eabcf1e2b72cba 100644
--- a/cosmogramme/cosmozend/tests/application/modules/cosmo/controllers/DynamicFacetsControllerTest.php
+++ b/cosmogramme/cosmozend/tests/application/modules/cosmo/controllers/DynamicFacetsControllerTest.php
@@ -189,6 +189,24 @@ class Cosmo_DynamicFacetsControllerValidateTest extends Cosmo_DynamicFacetsContr
 	}
 
 
+  /** @test */
+	public function withExistingIdThesaurusDOCUNewIdThesaurusShouldBeDOC0() {
+		$this->fixture('Class_CodifThesaurus',
+									 ['libelle' => 'doc that i love',
+										'id_thesaurus' => 'DOCU',
+										'rules' => '{"label":" 345$t "}']);
+
+		$this->postDispatch(
+												'/cosmo/facets/validate',
+												['libelle_facette' => 'docu',
+												 'rules' => '33$2']);
+
+		$this->assertEquals('DOC0',
+												Class_CodifThesaurus::findFirstBy(['libelle'=>'docu'])->getIdThesaurus());
+
+	}
+
+
 	/** @test */
 	public function withSpecialCharsNewIdThesaurusShouldBeFourLetters() {
 			$this->postDispatch(