diff --git a/htdocs/core/modules/propale/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
similarity index 100%
rename from htdocs/core/modules/propale/doc_generic_proposal_odt.modules.php
rename to htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
diff --git a/htdocs/core/modules/propale/pdf_propale_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
similarity index 99%
rename from htdocs/core/modules/propale/pdf_propale_azur.modules.php
rename to htdocs/core/modules/propale/doc/pdf_azur.modules.php
index 2befc3339cd46f1fc798f7eba4c8a8c907f6761d..0a13926af356f3b6ba7913cb028a276c850a2666 100644
--- a/htdocs/core/modules/propale/pdf_propale_azur.modules.php
+++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
@@ -2,7 +2,7 @@
 /* Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2011 Regis Houssin        <regis@dolibarr.fr>
  * Copyright (C) 2008      Raphael Bertrand     <raphael.bertrand@resultic.fr>
- * Copyright (C) 2010-2011 Juanjo Menent	    <jmenent@2byte.es>
+ * Copyright (C) 2010-2012 Juanjo Menent	    <jmenent@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
  */
 
 /**
- *	\file       htdocs/core/modules/propale/pdf_propale_azur.modules.php
+ *	\file       htdocs/core/modules/propale/pdf_azur.modules.php
  *	\ingroup    propale
  *	\brief      Fichier de la classe permettant de generer les propales au modele Azur
  *	\author	    Laurent Destailleur
@@ -33,10 +33,10 @@ require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');
 
 
 /**
- *	\class      pdf_propale_azur
+ *	\class      pdf_azur
  *	\brief      Classe permettant de generer les propales au modele Azur
  */
-class pdf_propale_azur extends ModelePDFPropales
+class pdf_azur extends ModelePDFPropales
 {
 	var $emetteur;	// Objet societe qui emet
 
@@ -46,7 +46,7 @@ class pdf_propale_azur extends ModelePDFPropales
 	 *
 	 *  @param		DoliDB		$DB      Database handler
 	 */
-	function pdf_propale_azur($db)
+	function pdf_azur($db)
 	{
 		global $conf,$langs,$mysoc;
 
diff --git a/htdocs/core/modules/propale/pdf_propale_jaune.modules.php b/htdocs/core/modules/propale/doc/pdf_jaune.modules.php
similarity index 99%
rename from htdocs/core/modules/propale/pdf_propale_jaune.modules.php
rename to htdocs/core/modules/propale/doc/pdf_jaune.modules.php
index aed35de0c83f5eb977d6b912b474bcbd568dc6ec..d37eeb8a2b3645ca3dadc596baf4ff0e2de98129 100644
--- a/htdocs/core/modules/propale/pdf_propale_jaune.modules.php
+++ b/htdocs/core/modules/propale/doc/pdf_jaune.modules.php
@@ -2,7 +2,7 @@
 /* Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2011 Regis Houssin        <regis@dolibarr.fr>
  * Copyright (C) 2008      Raphael Bertrand     <raphael.bertrand@resultic.fr>
- * Copyright (C) 2010-2011 Juanjo Menent	    <jmenent@2byte.es>
+ * Copyright (C) 2010-2012 Juanjo Menent	    <jmenent@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
  */
 
 /**
- *	\file       htdocs/core/modules/propale/pdf_propale_jaune.modules.php
+ *	\file       htdocs/core/modules/propale/pdf_jaune.modules.php
  *	\ingroup    propale
  *	\brief      Fichier de la classe permettant de generer les propales au modele Jaune
  *	\author	    Laurent Destailleur
@@ -33,10 +33,10 @@ require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');
 
 
 /**
- *	\class      pdf_propale_jaune
+ *	\class      pdf_jaune
  *	\brief      Classe permettant de generer les propales au modele Jaune
  */
-class pdf_propale_jaune extends ModelePDFPropales
+class pdf_jaune extends ModelePDFPropales
 {
 	var $emetteur;	// Objet societe qui emet
 
@@ -46,7 +46,7 @@ class pdf_propale_jaune extends ModelePDFPropales
 	 *
 	 *  @param		DoliDB		$DB      Database handler
 	 */
-	function pdf_propale_jaune($db)
+	function pdf_jaune($db)
 	{
 		global $conf,$langs,$mysoc;
 
diff --git a/htdocs/core/modules/propale/modules_propale.php b/htdocs/core/modules/propale/modules_propale.php
index f04c20feae5ca9762fec29fce6b49dfcb09d61a1..3dbe4e79d66aa3dfc5a876d21fa702b4110b2ee1 100644
--- a/htdocs/core/modules/propale/modules_propale.php
+++ b/htdocs/core/modules/propale/modules_propale.php
@@ -2,6 +2,7 @@
 /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2011 Regis Houssin        <regis@dolibarr.fr>
+ * Copyright (C) 2012      Juanjo Menent		<jmenent@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -149,7 +150,6 @@ function propale_pdf_create($db, $object, $modele, $outputlangs, $hidedetails=0,
 	
 	$dir = "/core/modules/propale/";
 	$srctemplatepath='';
-	$modelisok=0;
 
 	// Positionne le modele sur le nom du modele a utiliser
 	if (! dol_strlen($modele))
@@ -164,6 +164,78 @@ function propale_pdf_create($db, $object, $modele, $outputlangs, $hidedetails=0,
 	    }
 	}
 
+    // If selected modele is a filename template (then $modele="modelname:filename")
+	$tmp=explode(':',$modele,2);
+    if (! empty($tmp[1]))
+    {
+        $modele=$tmp[0];
+        $srctemplatepath=$tmp[1];
+    }
+
+	// Search template file
+	$file=''; $classname=''; $filefound=0;
+	foreach(array('doc','pdf') as $prefix)
+	{
+        $file = $prefix."_".$modele.".modules.php";
+
+        // On verifie l'emplacement du modele
+        $file = dol_buildpath($dir.'doc/'.$file);
+
+        if (file_exists($file))
+	    {
+	        $filefound=1;
+	        $classname=$prefix.'_'.$modele;
+	        break;
+	    }
+	}
+
+	// Charge le modele
+	if ($filefound)
+	{
+		require_once($file);
+
+		$obj = new $classname($db);
+		$obj->message = $message;
+
+		// We save charset_output to restore it because write_file can change it if needed for
+		// output format that does not support UTF8.
+		$sav_charset_output=$outputlangs->charset_output;
+		if ($obj->write_file($object, $outputlangs, $srctemplatepath, $hidedetails, $hidedesc, $hideref, $hookmanager) > 0)
+		{
+			$outputlangs->charset_output=$sav_charset_output;
+
+			// We delete old preview
+			require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
+			dol_delete_preview($object);
+
+			// Success in building document. We build meta file.
+			dol_meta_create($object);
+
+			// Appel des triggers
+			include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
+			$interface=new Interfaces($db);
+			$result=$interface->run_triggers('PROPAL_BUILDDOC',$object,$user,$langs,$conf);
+			if ($result < 0) { $error++; $this->errors=$interface->errors; }
+			// Fin appel triggers
+
+			return 1;
+		}
+		else
+		{
+			$outputlangs->charset_output=$sav_charset_output;
+			dol_print_error($db,"propal_pdf_create Error: ".$obj->error);
+			return -1;
+		}
+
+	}
+	else
+	{
+		dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file));
+		return -1;
+	}
+	
+	
+	/*
 	// Positionne modele sur le nom du modele de propale a utiliser
 	$file = "pdf_propale_".$modele.".modules.php";
 
@@ -241,6 +313,7 @@ function propale_pdf_create($db, $object, $modele, $outputlangs, $hidedetails=0,
 		}
 		return 0;
 	}
+	*/
 }
 
 ?>