diff --git a/htdocs/includes/modules/commande/mod_commande_marbre.php b/htdocs/includes/modules/commande/mod_commande_marbre.php
index 8932fb79745c77cf967d8d9305a80ac12a01bc10..9edc1505dc3a107cbcca5dff35e31f3c3d74c780 100644
--- a/htdocs/includes/modules/commande/mod_commande_marbre.php
+++ b/htdocs/includes/modules/commande/mod_commande_marbre.php
@@ -19,123 +19,125 @@
  */
 
 /**
-     	\file       htdocs/includes/modules/commande/mod_commande_marbre.php
-		\ingroup    commande
-		\brief      Fichier contenant la classe du modele de num�rotation de reference de commande Marbre
-		\version    $Id$
-*/
+ \file       htdocs/includes/modules/commande/mod_commande_marbre.php
+ \ingroup    commande
+ \brief      Fichier contenant la classe du modele de num�rotation de reference de commande Marbre
+ \version    $Id$
+ */
 
 require_once(DOL_DOCUMENT_ROOT ."/includes/modules/commande/modules_commande.php");
 
 /**	    \class      mod_commande_marbre
-		\brief      Classe du modele de numerotation de reference de commande Marbre
-*/
+ \brief      Classe du modele de numerotation de reference de commande Marbre
+ */
 
 class mod_commande_marbre extends ModeleNumRefCommandes
 {
 	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
 	var $prefix='CO';
-  var $error='';
-  var $nom='Marbre';
-	
-    
-    /**     \brief      Renvoi la description du modele de numerotation
-     *      \return     string      Texte descripif
-     */
-    function info()
-    {
+	var $error='';
+	var $nom='Marbre';
+
+
+	/**     \brief      Renvoi la description du modele de numerotation
+	 *      \return     string      Texte descripif
+	 */
+	function info()
+	{
 		global $langs;
 		return $langs->trans("MarbreNumRefDesc",$this->prefix);
-    }
-
-
-    /**     \brief      Renvoi un exemple de numerotation
-     *      \return     string      Example
-     */
-    function getExample()
-    {
-        return $this->prefix."0501-0001";
-    }
-
-
-    /**     \brief      Test si les numeros deje en vigueur dans la base ne provoquent pas de
-     *                  de conflits qui empechera cette numerotation de fonctionner.
-     *      \return     boolean     false si conflit, true si ok
-     */
-    function canBeActivated()
-    {
-    	global $conf;
-    	
-    	$coyymm='';
-    	
-    	$sql = "SELECT MAX(ref)";
-      $sql.= " FROM ".MAIN_DB_PREFIX."commande";
-      $sql.= " WHERE ref like '".$this->prefix."%'";
-      $sql.= " AND entity = ".$conf->entity;
-      
-      $resql=$db->query($sql);
-      if ($resql)
-      {
-      	$row = $db->fetch_row($resql);
-        if ($row) $coyymm = substr($row[0],0,6);
-      }
-      if ($coyymm && ! preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$coyymm))
-      {
-      	$this->error='Une commande commencant par $coyymm existe en base et est incompatible avec cette numerotation. Supprimer la ou renommer la pour activer ce module.';
-      	return false;    
-      }
-
-        return true;
-    }
+	}
+
+
+	/**     \brief      Renvoi un exemple de numerotation
+	 *      \return     string      Example
+	 */
+	function getExample()
+	{
+		return $this->prefix."0501-0001";
+	}
+
+
+	/**     \brief      Test si les numeros deje en vigueur dans la base ne provoquent pas de
+	 *                  de conflits qui empechera cette numerotation de fonctionner.
+	 *      \return     boolean     false si conflit, true si ok
+	 */
+	function canBeActivated()
+	{
+		global $conf;
+
+		$coyymm='';
+
+		$posindice=8;
+		$sql = "SELECT MAX(ref) as max";
+		$sql.= " FROM ".MAIN_DB_PREFIX."commande";
+		$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
+		$sql.= " AND entity = ".$conf->entity;
+
+		$resql=$db->query($sql);
+		if ($resql)
+		{
+			$row = $db->fetch_row($resql);
+			if ($row) $coyymm = substr($row[0],0,6);
+		}
+		if ($coyymm && ! preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$coyymm))
+		{
+			$langs->load("errors");
+			$this->error=$langs->trans('ErrorNumRefModel');
+			return false;
+		}
+
+		return true;
+	}
 
 	/**		\brief      Return next value
-	*      	\param      objsoc      Objet third party
-	*		\param		commande	Object order
-	*      	\return     string      Value if OK, 0 if KO
-	*/
-    function getNextValue($objsoc,$commande)
-    {
-    	global $db,$conf;
-    	
-    	// D'abord on recupere la valeur max (reponse immediate car champ indexe)
-      $posindice=8;
-      $sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max";
-    	$sql.= " FROM ".MAIN_DB_PREFIX."commande";
-    	$sql.= " WHERE ref like '".$this->prefix."%'";
-    	$sql.= " AND entity = ".$conf->entity;
-    	
-    	$resql=$db->query($sql);
-      if ($resql)
-      {
-      	$obj = $db->fetch_object($resql);
-        if ($obj) $max = intval($obj->max);
-        else $max=0;
-      }
-      else
-      {
-      	dol_syslog("mod_commande_marbre::getNextValue sql=".$sql);
-        return -1;
-      }
-      
-      //$date=time();
-      $date=$commande->date;
-      $yymm = strftime("%y%m",$date);
-      $num = sprintf("%04s",$max+1);
-        
-      dol_syslog("mod_commande_marbre::getNextValue return ".$this->prefix.$yymm."-".$num);
-      return $this->prefix.$yymm."-".$num;
-    }
+	 *      \param      objsoc      Objet third party
+	 *		\param		commande	Object order
+	 *      \return     string      Value if OK, 0 if KO
+	 */
+	function getNextValue($objsoc,$commande)
+	{
+		global $db,$conf;
+
+		// D'abord on recupere la valeur max
+		$posindice=8;
+		$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
+		$sql.= " FROM ".MAIN_DB_PREFIX."commande";
+		$sql.= " WHERE ref like '".$this->prefix."____-%'";
+		$sql.= " AND entity = ".$conf->entity;
+
+		$resql=$db->query($sql);
+		if ($resql)
+		{
+			$obj = $db->fetch_object($resql);
+			if ($obj) $max = intval($obj->max);
+			else $max=0;
+		}
+		else
+		{
+			dol_syslog("mod_commande_marbre::getNextValue sql=".$sql);
+			return -1;
+		}
+
+		//$date=time();
+		$date=$commande->date;
+		$yymm = strftime("%y%m",$date);
+		$num = sprintf("%04s",$max+1);
+
+		dol_syslog("mod_commande_marbre::getNextValue return ".$this->prefix.$yymm."-".$num);
+		return $this->prefix.$yymm."-".$num;
+	}
 
 
 	/**		\brief      Return next free value
-    *      	\param      objsoc      Object third party
-	* 		\param		objforref	Object for number to search
-    *   	\return     string      Next free value
-    */
-    function commande_get_num($objsoc,$objforref)
-    {
-        return $this->getNextValue($objsoc,$objforref);
-    }
-    
+	 *      \param      objsoc      Object third party
+	 * 		\param		objforref	Object for number to search
+	 *   	\return     string      Next free value
+	 */
+	function commande_get_num($objsoc,$objforref)
+	{
+		return $this->getNextValue($objsoc,$objforref);
+	}
+
 }
 ?>
diff --git a/htdocs/includes/modules/facture/mod_facture_terre.php b/htdocs/includes/modules/facture/mod_facture_terre.php
index 15a9e855a96e618b750f3d5aea6ca62c603345bc..b9bf75bee60bb344d5f1fd0b9f9c46ae73324006 100644
--- a/htdocs/includes/modules/facture/mod_facture_terre.php
+++ b/htdocs/includes/modules/facture/mod_facture_terre.php
@@ -57,7 +57,7 @@ class mod_facture_terre extends ModeleNumRefFactures
 	}
 
 	/**     \brief      Test si les numeros deja en vigueur dans la base ne provoquent pas de
-	 *                  de conflits qui empechera cette num�rotation de fonctionner.
+	 *                  de conflits qui empechera cette numerotation de fonctionner.
 	 *      \return     boolean     false si conflit, true si ok
 	 */
 	function canBeActivated()
@@ -69,9 +69,9 @@ class mod_facture_terre extends ModeleNumRefFactures
 		// Check invoice num
 		$fayymm='';
 
-		$sql = "SELECT MAX(facnumber)";
+		$sql = "SELECT MAX(facnumber) as max";
 		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
-		$sql.= " WHERE facnumber like '".$this->prefixinvoice."%'";
+		$sql.= " WHERE facnumber LIKE '".$this->prefixinvoice."____-%'";
 		$sql.= " AND entity = ".$conf->entity;
 
 		$resql=$db->query($sql);
@@ -82,7 +82,8 @@ class mod_facture_terre extends ModeleNumRefFactures
 		}
 		if ($fayymm && ! preg_match('/'.$this->prefixinvoice.'[0-9][0-9][0-9][0-9]/i',$fayymm))
 		{
-			$this->error=$langs->trans('TerreNumRefModelError');
+			$langs->load("errors");
+			$this->error=$langs->trans('ErrorNumRefModel');
 			return false;
 		}
 
@@ -91,7 +92,7 @@ class mod_facture_terre extends ModeleNumRefFactures
 
 		$sql = "SELECT MAX(facnumber)";
 		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
-		$sql.= " WHERE facnumber like '".$this->prefixcreditnote."%'";
+		$sql.= " WHERE facnumber LIKE '".$this->prefixcreditnote."____-%'";
 		$sql.= " AND entity = ".$conf->entity;
 
 		$resql=$db->query($sql);
@@ -121,12 +122,11 @@ class mod_facture_terre extends ModeleNumRefFactures
 		if ($facture->type == 2) $prefix=$this->prefixcreditnote;
 		else $prefix=$this->prefixinvoice;
 
-		// D'abord on recupere la valeur max (reponse immediate car champ ind�x�)
+		// D'abord on recupere la valeur max
 		$posindice=8;
-
-		$sql = "SELECT MAX(SUBSTRING(facnumber,".$posindice.")) as max";
+		$sql = "SELECT MAX(SUBSTRING(facnumber FROM ".$posindice.")) as max";	// This is standard SQL
 		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
-		$sql.= " WHERE facnumber like '".$prefix."%'";
+		$sql.= " WHERE facnumber LIKE '".$prefix."____-%'";
 		$sql.= " AND entity = ".$conf->entity;
 
 		$resql=$db->query($sql);
diff --git a/htdocs/includes/modules/fichinter/mod_pacific.php b/htdocs/includes/modules/fichinter/mod_pacific.php
index 38903821134142d8f325136cec7db6760a53d7c0..90bbd34eed1bd4af68c92c7ae2e7237a2a0e2972 100644
--- a/htdocs/includes/modules/fichinter/mod_pacific.php
+++ b/htdocs/includes/modules/fichinter/mod_pacific.php
@@ -19,69 +19,69 @@
  */
 
 /**
-    \file       htdocs/includes/modules/fichinter/mod_pacific.php
-	\ingroup    fiche intervention
-	\brief      Fichier contenant la classe du modele de numerotation de reference de fiche intervention Pacific
-	\version    $Id$
-*/
+ \file       htdocs/includes/modules/fichinter/mod_pacific.php
+ \ingroup    fiche intervention
+ \brief      Fichier contenant la classe du modele de numerotation de reference de fiche intervention Pacific
+ \version    $Id$
+ */
 
 require_once(DOL_DOCUMENT_ROOT ."/includes/modules/fichinter/modules_fichinter.php");
 
 /**
-    \class      mod_pacific
-		\brief      Classe du moderotation de reference de fiche intervention Pacific
-*/
-
+ *  \class      mod_pacific
+ *	\brief      Classe du moderotation de reference de fiche intervention Pacific
+ */
 class mod_pacific extends ModeleNumRefFicheinter
 {
 	var $prefix='FI';
 	var $error='';
-	
-	
+
+
 	/**   \brief      Constructeur
-	*/
+	 */
 	function mod_pacific()
 	{
 		$this->nom = "pacific";
 	}
 
 
-    /**     \brief      Renvoi la description du modele de numerotation
-     *      \return     string      Texte descripif
-     */
-    function info()
-    {
-	 	global $langs;
+	/**     \brief      Renvoi la description du modele de numerotation
+	 *      \return     string      Texte descripif
+	 */
+	function info()
+	{
+		global $langs;
 
 		$langs->load("bills");
-		
-    	return $langs->trans('PacificNumRefModelDesc1',$this->prefix);
-    }
-
-    /**     \brief      Renvoi un exemple de numerotation
-     *      \return     string      Example
-     */
-    function getExample()
-    {
-        return $this->prefix."0501-0001";
-    }
-
-    /**     \brief      Test si les numeros deja en vigueur dans la base ne provoquent pas de
-     *                  de conflits qui empechera cette numerotation de fonctionner.
-     *      \return     boolean     false si conflit, true si ok
-     */
+
+		return $langs->trans('PacificNumRefModelDesc1',$this->prefix);
+	}
+
+	/**     \brief      Renvoi un exemple de numerotation
+	 *      \return     string      Example
+	 */
+	function getExample()
+	{
+		return $this->prefix."0501-0001";
+	}
+
+	/**     \brief      Test si les numeros deja en vigueur dans la base ne provoquent pas de
+	 *                  de conflits qui empechera cette numerotation de fonctionner.
+	 *      \return     boolean     false si conflit, true si ok
+	 */
 	function canBeActivated()
 	{
 		global $langs,$conf;
-	
+
 		$langs->load("bills");
-	
+
 		$fayymm='';
-	
+
 		$sql = "SELECT MAX(ref)";
 		$sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
+		$sql.= " WHERE ref like '".$this->prefix."____-%'";
 		$sql.= " WHERE entity = ".$conf->entity;
-		
+
 		$resql=$db->query($sql);
 		if ($resql)
 		{
@@ -94,54 +94,54 @@ class mod_pacific extends ModeleNumRefFicheinter
 		}
 		else
 		{
-			$this->error=$langs->trans('PacificNumRefModelError');
+			$langs->load("errors");
+			$this->error=$langs->trans('ErrorNumRefModel');
 			return false;
 		}
 	}
 
 	/**		\brief      Renvoi prochaine valeur attribuee
-	*      	\param      objsoc      Objet societe
-	*      	\param      ficheinter	Object ficheinter
-	*      	\return     string      Valeur
-	*/
-  function getNextValue($objsoc=0,$ficheinter='')
+	 *      	\param      objsoc      Objet societe
+	 *      	\param      ficheinter	Object ficheinter
+	 *      	\return     string      Valeur
+	 */
+	function getNextValue($objsoc=0,$object='')
 	{
 		global $db,$conf;
-		
+
 		// D'abord on recupere la valeur max (reponse immediate car champ indexe)
-    $posindice=8;
-    
-    $sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max";
-    $sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
-		$sql.= " WHERE ref like '".$this->prefix."%'";
+		$posindice=8;
+		$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
+		$sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
+		$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
 		$sql.= " AND entity = ".$conf->entity;
-        
+
 		$resql=$db->query($sql);
-    if ($resql)
-    {
-    	$obj = $db->fetch_object($resql);
-      if ($obj) $max = intval($obj->max);
-      else $max=0;
-    }
-    
-    //$date=time();
-    $date=$ficheinter->date;
-    $yymm = strftime("%y%m",$date);
-    $num = sprintf("%04s",$max+1);
-        
-    return $this->prefix.$yymm."-".$num;
-  }
-    
+		if ($resql)
+		{
+			$obj = $db->fetch_object($resql);
+			if ($obj) $max = intval($obj->max);
+			else $max=0;
+		}
+
+		//$date=time();
+		$date=$object->date;
+		$yymm = strftime("%y%m",$date);
+		$num = sprintf("%04s",$max+1);
+
+		return $this->prefix.$yymm."-".$num;
+	}
+
 	/**		\brief      Return next free value
-    *      	\param      objsoc      Object third party
-	* 		\param		objforref	Object for number to search
-    *   	\return     string      Next free value
-    */
-    function getNumRef($objsoc,$objforref)
-    {
-        return $this->getNextValue($objsoc,$objforref);
-    }
-    
+	 *      	\param      objsoc      Object third party
+	 * 		\param		objforref	Object for number to search
+	 *   	\return     string      Next free value
+	 */
+	function getNumRef($objsoc,$objforref)
+	{
+		return $this->getNextValue($objsoc,$objforref);
+	}
+
 }
 
 ?>
diff --git a/htdocs/includes/modules/project/mod_project_simple.php b/htdocs/includes/modules/project/mod_project_simple.php
index 7ac759b10904787f5aa8d66ac7e8de022348d960..72b40cd97762fff19334fd03b8ed10dfa7ff4232 100644
--- a/htdocs/includes/modules/project/mod_project_simple.php
+++ b/htdocs/includes/modules/project/mod_project_simple.php
@@ -59,6 +59,38 @@ class mod_project_simple extends ModeleNumRefProjects
     }
 
 
+    /**     \brief      Test si les numeros deja en vigueur dans la base ne provoquent pas de
+     *                  de conflits qui empechera cette numerotation de fonctionner.
+     *      \return     boolean     false si conflit, true si ok
+     */
+    function canBeActivated()
+    {
+    	global $conf;
+
+        $coyymm='';
+
+        $sql = "SELECT MAX(ref) as max";
+        $sql.= " FROM ".MAIN_DB_PREFIX."projet";
+		$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
+        $sql.= " AND entity = ".$conf->entity;
+        $resql=$db->query($sql);
+        if ($resql)
+        {
+            $row = $db->fetch_row($resql);
+            if ($row) $coyymm = substr($row[0],0,6);
+        }
+        if (! $coyymm || preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$coyymm))
+        {
+            return true;
+        }
+        else
+        {
+			$langs->load("errors");
+			$this->error=$langs->trans('ErrorNumRefModel');
+            return false;
+        }
+    }
+
 
    /**
 	*  \brief      Return next value
@@ -72,9 +104,9 @@ class mod_project_simple extends ModeleNumRefProjects
 
 		// D'abord on recupere la valeur max (reponse immediate car champ indexe)
 		$posindice=8;
-		$sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max";
+		$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
 		$sql.= " FROM ".MAIN_DB_PREFIX."projet";
-		$sql.= " WHERE ref like '".$this->prefix."%'";
+		$sql.= " WHERE ref like '".$this->prefix."____-%'";
 		$sql.= " AND entity = ".$conf->entity;
 
 		$resql=$db->query($sql);
diff --git a/htdocs/includes/modules/propale/mod_propale_marbre.php b/htdocs/includes/modules/propale/mod_propale_marbre.php
index 9daa986e8b9cbb6d8b86ee5f8b1026b6fef6855f..d9b9e55e419b0d83e2d29a478834d6485951de36 100644
--- a/htdocs/includes/modules/propale/mod_propale_marbre.php
+++ b/htdocs/includes/modules/propale/mod_propale_marbre.php
@@ -68,9 +68,10 @@ class mod_propale_marbre extends ModeleNumRefPropales
 
 		$pryymm='';
 
-		$sql = "SELECT MAX(ref)";
+		$sql = "SELECT MAX(ref) as max";
 		$sql.= " FROM ".MAIN_DB_PREFIX."propal";
-		$sql.= " WHERE entity = ".$conf->entity;
+		$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
+		$sql.= " AND entity = ".$conf->entity;
 
 		$resql=$db->query($sql);
 		if ($resql)
@@ -78,13 +79,15 @@ class mod_propale_marbre extends ModeleNumRefPropales
 			$row = $db->fetch_row($resql);
 			if ($row) $pryymm = substr($row[0],0,6);
 		}
-		if (! $pryymm || preg_match('/PR[0-9][0-9][0-9][0-9]/i',$pryymm))
+
+		if (! $pryymm || preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$pryymm))
 		{
 			return true;
 		}
 		else
 		{
-			$this->error='Une propal commencant par $pryymm existe en base et est incompatible avec cette numerotation. Supprimer la ou renommer la pour activer ce module.';
+			$langs->load("errors");
+			$this->error=$langs->trans('ErrorNumRefModel');
 			return false;
 		}
 	}
@@ -98,12 +101,11 @@ class mod_propale_marbre extends ModeleNumRefPropales
 	{
 		global $db,$conf;
 
-		// D'abord on recupere la valeur max (reponse immediate car champ indexe)
+		// D'abord on recupere la valeur max
 		$posindice=8;
-		 // TODO le 0+ cree une erreur sous pgsql mais est utile sous mysql si utilisation de différent module dans le passé
-		$sql = "SELECT MAX(0+SUBSTRING(ref FROM ".$posindice.")) as max";
+		$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";	// This is standard SQL
 		$sql.= " FROM ".MAIN_DB_PREFIX."propal";
-		$sql.= " WHERE ref LIKE '".$this->prefix."%'";
+		$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
 		$sql.= " AND entity = ".$conf->entity;
 
 		$resql=$db->query($sql);
diff --git a/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_muguet.php b/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_muguet.php
index 2076ed46c9088759d2a621b5ba77e8d8913e4802..32a57b4c921af34270625dd23b42468a4d7e0957 100644
--- a/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_muguet.php
+++ b/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_muguet.php
@@ -29,16 +29,16 @@ require_once(DOL_DOCUMENT_ROOT ."/includes/modules/supplier_order/modules_comman
 
 
 /**	    \class      mod_commande_fournisseur_muguet
-		\brief      Classe du modele de numerotation de reference de commande fournisseur Muguet
-*/
+ *		\brief      Classe du modele de numerotation de reference de commande fournisseur Muguet
+ */
 class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
 {
 	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
 	var $error = '';
 	var $nom = 'Muguet';
 	var $prefix='CF';
-    
-    
+
+
     /**     \brief      Renvoi la description du modele de numerotation
      *      \return     string      Texte descripif
      */
@@ -64,12 +64,13 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
     function canBeActivated()
     {
     	global $conf;
-    	
+
         $coyymm='';
-        
-        $sql = "SELECT MAX(ref)";
+
+        $sql = "SELECT MAX(ref) as max";
         $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur";
-        $sql.= " WHERE entity = ".$conf->entity;
+		$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
+        $sql.= " AND entity = ".$conf->entity;
         $resql=$db->query($sql);
         if ($resql)
         {
@@ -82,8 +83,9 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
         }
         else
         {
-            $this->error='Une commande commencant par $coyymm existe en base et est incompatible avec cette numerotation. Supprimer la ou renommer la pour activer ce module.';
-            return false;    
+			$langs->load("errors");
+			$this->error=$langs->trans('ErrorNumRefModel');
+            return false;
         }
     }
 
@@ -96,13 +98,13 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
     {
         global $db,$conf;
 
-        // D'abord on recupere la valeur max (reponse immediate car champ indexe)
+        // D'abord on recupere la valeur max
         $posindice=8;
-        $sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max";
+        $sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
         $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur";
-        $sql.= " WHERE ref like '".$this->prefix."%'";
+		$sql.= " WHERE ref like '".$this->prefix."____-%'";
         $sql.= " AND entity = ".$conf->entity;
-        
+
         $resql=$db->query($sql);
         if ($resql)
         {
@@ -110,12 +112,12 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
             if ($obj) $max = intval($obj->max);
             else $max=0;
         }
-    
+
 		//$date=time();
         $date=$object->date_commande;
         $yymm = strftime("%y%m",$date);
         $num = sprintf("%04s",$max+1);
-        
+
         return $this->prefix.$yymm."-".$num;
     }
 
diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
index 9f9c1e8e91648bc72c925069c0489b8c621e6edc..bff653783f169fd3999e9e166c156a115e993261 100644
--- a/htdocs/langs/en_US/errors.lang
+++ b/htdocs/langs/en_US/errors.lang
@@ -70,3 +70,5 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
 ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
 WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
 ErrorDatabaseParameterWrong=Database setup parameter '<b>%s</b>' has a value not compatible to use Dolibarr (must have value '<b>%s</b>').
+ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
+
diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang
index 05924aa1890fba33c1ef3af13c6b37c5e4a79319..f866d7a3ad3a1d67b221614e12674d8816ad0cb4 100644
--- a/htdocs/langs/fr_FR/bills.lang
+++ b/htdocs/langs/fr_FR/bills.lang
@@ -402,4 +402,3 @@ PDFTourteauDescription=Modèle de facture sans remise
 # NumRef Modules
 
 TerreNumRefModelDesc1=Renvoie le numéro sous la forme %syymm-nnnn pour les factures et %syymm-nnnn pour les avoirs où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0
-TerreNumRefModelError=Une facture commençant par $syymm existe en base et est incompatible avec cette numérotation. Supprimez la ou renommez la pour activer ce module.
diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang
index 53b5e6c7f30e7f93cb2fba954c51c878cb2d552f..80a5d585b84095ad48ba369e2a0faae68d3d8c4f 100644
--- a/htdocs/langs/fr_FR/errors.lang
+++ b/htdocs/langs/fr_FR/errors.lang
@@ -70,4 +70,5 @@ WarningsOnXLines=Alertes sur <b>%s</b> lignes sources
 ErrorFileIsInfectedWithAVirus=L'antivirus n'a pas pu valider ce fichier (il est probablement infecté par un virus) !
 ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis pour le champ "%s"
 WarningNoDocumentModelActivated=Aucun modèle, pour la génération de document, n'a été activé. Un modèle sera pris par défaut en attendant la correction de configuration du module.
-ErrorDatabaseParameterWrong=Le paramètre de configuration de la base de donnée '<b>%s</b>' a une valeur non compatible pour une utilisation de Dolibarr (doit avoir la valeur '<b>%s</b>').
\ No newline at end of file
+ErrorDatabaseParameterWrong=Le paramètre de configuration de la base de donnée '<b>%s</b>' a une valeur non compatible pour une utilisation de Dolibarr (doit avoir la valeur '<b>%s</b>').
+ErrorNumRefModel=Une référence existe en base (%s) et est incompatible avec cette numérotation. Supprimez la ligne ou renommez la référence pour activer ce module.