diff --git a/Linse.php b/Linse.php
index de15a554aebfb2cadfbb189b4df7a6b2672f1b76..0d3fc006e9fa80a55e819e3565a3117b48e04195 100644
--- a/Linse.php
+++ b/Linse.php
@@ -23,7 +23,6 @@
 class Linse {
   protected $_converter;
 
-  private $articles;              // Articles rejetes
   private $inclu;                 // Mots inclus
   private $exclu;                 // Mots vides
   private $pluriel;               // Règles des pluriels
@@ -67,8 +66,6 @@ class Linse {
 
 
   public function __construct()  {
-    $this->articles = ['L\'','LE ','LA ','LES ','UN ','UNE '];
-
     $this->inclu =  ['AN','AS','OR','U2','AI','LU','XO','DO','RE','MI','FA','SI','AC','DC','XX','B','C','D','E','F','G','H','I','J','K','M','P','Q','R','S','T','V','W','X','Y','Z','L','YU','UT','LI','OC','PI','ZU','WU','TO','OZ','ZZ','XX', 'PC', 'DS'];
 
     $this->exclu = ['L','LE','LA','LES','UN','UNE','LES','DES','MES','TES','CES'];
@@ -126,17 +123,9 @@ class Linse {
 
 
   public function codeAlphaTitre($titre) {
-    $titre = $this->alphaMaj($titre);
-    foreach($this->articles as $article) {
-      $lg = strlen($article);
-      if(strLeft($titre, $lg)==$article) {
-        $titre = strMid($titre,$lg,256);
-        break;
-      }
-    }
-
-    $titre = $this->alphaMaj($titre);
-    return $titre;
+    return preg_replace('/^((L|LE|LA|LES|UN|UNE)\s)/',
+                        '',
+                        $this->alphaMaj($titre));
   }
 
 
diff --git a/Linse/Converter.php b/Linse/Converter.php
index f71b6a35c7474102e7c256ec534599b6bfa4bd0b..26ae5a5a82a8895a7ded2fe95b081eb6ab6128e3 100644
--- a/Linse/Converter.php
+++ b/Linse/Converter.php
@@ -39,6 +39,10 @@ class Linse_Converter {
 
 
   public function toIndexable($data) {
-    return trim(str_replace($this->_ascii_map, $this->_ascii_to_uppercase, $data));
+    return preg_replace('/\s+/',
+                        ' ',
+                        trim(str_replace($this->_ascii_map,
+                                         $this->_ascii_to_uppercase,
+                                         $data)));
   }
 }
\ No newline at end of file
diff --git a/Linse/Iso5426Converter.php b/Linse/Iso5426Converter.php
index 8133961ed03a77c282e176126f8c1071e70595f6..c49e8f6fa649926ab2d1bb54c056a3447235e41b 100644
--- a/Linse/Iso5426Converter.php
+++ b/Linse/Iso5426Converter.php
@@ -22,7 +22,7 @@
 
 class Linse_Iso5426Converter extends Linse_Converter {
   public function toIndexable($data) {
-    $data = str_replace([chr(136), chr(137)], '', $data); // Les delimiteurs d'article bnf
+    $data = preg_replace('/\210.+\211/', '', $data); // Les delimiteurs d'article bnf NSB NSE
 
     $result = '';
     $len = strlen($data);
diff --git a/tests/LinseTest.php b/tests/LinseTest.php
index a3ef51880377c327eb73c5e1ce6dc667b40792a6..939cb42375d9b94741e0c383b7a9c42069fcb09a 100644
--- a/tests/LinseTest.php
+++ b/tests/LinseTest.php
@@ -70,4 +70,28 @@ class LinseTest extends PHPUnit_Framework_TestCase {
   public function ethShouldBeHandled() {
     $this->assertEquals('D', $this->_model->alphaMaj('ð'));
   }
+
+
+  public function titlesAndAlpha() {
+    return [
+            [ 'Norvege, Islande', 'NORVEGE ISLANDE' ],
+            [ 'L\'ame divisee' , 'AME DIVISEE' ],
+            [ 'Le velo de Jojo', 'VELO DE JOJO' ],
+            [ 'Les tontons flingueurs', 'TONTONS FLINGUEURS' ],
+            [ 'La voiture de la maison', 'VOITURE DE LA MAISON' ],
+            [ 'Un dimanche', 'DIMANCHE' ],
+            [ 'Un voyage a la mer', 'VOYAGE A LA MER' ],
+            [ chr(136) . 'Joseph Canteloube. ' . chr(137) . 'Anthologie des chants populaires franco-canadiens . [A 1 v.]',
+             'ANTHOLOGIE DES CHANTS POPULAIRES FRANCO-CANADIENS'],
+    ];
+  }
+
+  /**
+   * @dataProvider titlesAndAlpha
+   * @test
+   */
+  public function alphaTitleShouldAnswer($title, $alpha) {
+    $this->assertEquals($alpha,
+                        $this->_model->beForIso5426()->codeAlphaTitre($title));
+  }
 }
\ No newline at end of file