diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php
index 415bff261deb4fbe0da410ac2df105c94a2420f3..b591aa79c0812343c35fc7c3e8b76e18dbe34b24 100644
--- a/htdocs/admin/livraison.php
+++ b/htdocs/admin/livraison.php
@@ -4,7 +4,7 @@
  * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
  * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
- * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
+ * Copyright (C) 2005-2014 Regis Houssin        <regis.houssin@capnetworks.com>
  * Copyright (C) 2011-2013 Juanjo Menent        <jmenent@2byte.es>
  * Copyright (C) 2011-2013 Philippe Grand       <philippe.grand@atoo-net.com>
  *
@@ -95,7 +95,7 @@ if ($action == 'specimen')
     $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
     foreach($dirmodels as $reldir)
     {
-        $file=dol_buildpath($reldir."core/modules/livraison/pdf/pdf_".$modele.".modules.php",0);
+        $file=dol_buildpath($reldir."core/modules/livraison/doc/pdf_".$modele.".modules.php",0);
         if (file_exists($file))
         {
             $filefound=1;
@@ -128,6 +128,35 @@ if ($action == 'specimen')
     }
 }
 
+// Define constants for submodules that contains parameters (forms with param1, param2, ... and value1, value2, ...)
+if ($action == 'setModuleOptions')
+{
+	$post_size=count($_POST);
+
+	$db->begin();
+
+	for($i=0;$i < $post_size;$i++)
+	{
+		if (array_key_exists('param'.$i,$_POST))
+		{
+			$param=GETPOST("param".$i,'alpha');
+			$value=GETPOST("value".$i,'alpha');
+			if ($param) $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity);
+			if (! $res > 0) $error++;
+		}
+	}
+	if (! $error)
+	{
+		$db->commit();
+		setEventMessage($langs->trans("SetupSaved"));
+	}
+	else
+	{
+		$db->rollback();
+		setEventMessage($langs->trans("Error"),'errors');
+	}
+}
+
 if ($action == 'set')
 {
     $ret = addDocumentModel($value, $type, $label, $scandir);
@@ -356,75 +385,101 @@ clearstatcache();
 $var=true;
 foreach ($dirmodels as $reldir)
 {
-    $dir = dol_buildpath($reldir."core/modules/livraison/pdf/");
+    $dir = dol_buildpath($reldir."core/modules/livraison/doc/");
 
     if (is_dir($dir))
     {
         $handle = opendir($dir);
         if (is_resource($handle))
         {
-            while (($file = readdir($handle))!==false)
-            {
-                if (substr($file, dol_strlen($file) -12) == '.modules.php' && substr($file,0,4) == 'pdf_')
+        	while (($file = readdir($handle))!==false)
+			{
+				$filelist[]=$file;
+			}
+			closedir($handle);
+			arsort($filelist);
+
+			foreach($filelist as $file)
+			{
+                if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file))
                 {
-                    $name = substr($file, 4, dol_strlen($file) - 16);
-                    $classname = substr($file, 0, dol_strlen($file) - 12);
-
-                    $var=!$var;
-
-                    print '<tr '.$bc[$var].'><td>';
-                    print $name;
-                    print "</td><td>\n";
-                    require_once $dir.$file;
-                    $module = new $classname($db);
-
-                    print $module->description;
-                    print '</td>';
-
-                    // Activ
-                    if (in_array($name, $def))
-                    {
-                        print "<td align=\"center\">\n";
-                        print '<a href="'.$_SERVER["PHP_SELF"].'?action=del&amp;value='.$name.'&amp;scandir='.$module->scandir.'&amp;label='.urlencode($module->name).'">';
-                        print img_picto($langs->trans("Enabled"),'switch_on');
-                        print '</a>';
-                        print "</td>";
-                    }
-                    else
-                    {
-                        print "<td align=\"center\">\n";
-                        print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&amp;value='.$name.'&amp;scandir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
-                        print "</td>";
-                    }
-
-                    // Default
-                    print "<td align=\"center\">";
-                    if ($conf->global->LIVRAISON_ADDON_PDF == "$name")
-                    {
-                        print img_picto($langs->trans("Default"),'on');
-                    }
-                    else
-                    {
-                        print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&amp;value='.$name.'&amp;scandir='.$module->scandir.'&amp;label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').'</a>';
-                    }
-                    print '</td>';
-
-                    // Info
-                    $htmltooltip =    ''.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
-                    $htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
-                    $htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").'</u>:';
-                    $htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
-                    print '<td align="center">';
-                    print $form->textwithpicto('',$htmltooltip,1,0);
-                    print '</td>';
-                    print '<td align="center">';
-                    print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"),'sending').'</a>';
-                    print '</td>';
-
-                    print '</tr>';
+                	if (file_exists($dir.'/'.$file))
+                	{
+                		$var=!$var;
+
+		    			$name = substr($file, 4, dol_strlen($file) -16);
+		    			$classname = substr($file, 0, dol_strlen($file) -12);
+
+		    			require_once $dir.'/'.$file;
+		    			$module = new $classname($db);
+
+		    			$modulequalified=1;
+		    			if ($module->version == 'development'  && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0;
+		    			if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0;
+
+		    			if ($modulequalified)
+		    			{
+		    				print '<tr '.$bc[$var].'><td width="100">';
+		    				print (empty($module->name)?$name:$module->name);
+		    				print "</td><td>\n";
+		    				if (method_exists($module,'info')) print $module->info($langs);
+		    				else print $module->description;
+		    				print '</td>';
+
+		    				// Active
+		    				if (in_array($name, $def))
+		    				{
+		    					print "<td align=\"center\">\n";
+		    					print '<a href="'.$_SERVER["PHP_SELF"].'?action=del&amp;value='.$name.'&amp;scandir='.$module->scandir.'&amp;label='.urlencode($module->name).'">';
+		    					print img_picto($langs->trans("Enabled"),'switch_on');
+		    					print '</a>';
+		    					print "</td>";
+		    				}
+		    				else
+		    				{
+		    					print "<td align=\"center\">\n";
+		    					print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&amp;value='.$name.'&amp;scandir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
+		    					print "</td>";
+		    				}
+
+		    				// Default
+		    				print "<td align=\"center\">";
+		    				if ($conf->global->LIVRAISON_ADDON_PDF == "$name")
+		    				{
+		    					print img_picto($langs->trans("Default"),'on');
+		    				}
+		    				else
+		    				{
+		    					print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&amp;value='.$name.'&amp;scandir='.$module->scandir.'&amp;label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').'</a>';
+		    				}
+		    				print '</td>';
+
+		    				// Info
+		    				$htmltooltip =    ''.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
+		    				$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
+		    				$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").'</u>:';
+		    				$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
+		    				print '<td align="center">';
+		    				print $form->textwithpicto('',$htmltooltip,1,0);
+		    				print '</td>';
+
+		    				// Preview
+		    				print '<td align="center">';
+		    				if ($module->type == 'pdf')
+		    				{
+		    					print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"),'sending').'</a>';
+		    				}
+		    				else
+		    				{
+		    					print img_object($langs->trans("PreviewNotAvailable"),'generic');
+		    				}
+		    				print '</td>';
+
+		    				print '</tr>';
+		    			}
+                	}
                 }
             }
-            closedir($handle);
         }
     }
 }
diff --git a/htdocs/core/modules/livraison/pdf/index.html b/htdocs/core/modules/livraison/doc/index.html
similarity index 100%
rename from htdocs/core/modules/livraison/pdf/index.html
rename to htdocs/core/modules/livraison/doc/index.html
diff --git a/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
similarity index 99%
rename from htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php
rename to htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
index 569cfdff85eaee853bd9721dfda26a6a7fa1d759..363e7960fe83e78fac225cd0a20f26b39a73a24b 100644
--- a/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php
+++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2004-2014 Laurent Destailleur   <eldy@users.sourceforge.net>
- * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
+ * Copyright (C) 2005-2014 Regis Houssin         <regis.houssin@capnetworks.com>
  * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
  * Copyright (C) 2008      Chiptronik
  * Copyright (C) 2011-2012 Philippe Grand        <philippe.grand@atoo-net.com>
@@ -21,7 +21,7 @@
  */
 
 /**
- *	\file       htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php
+ *	\file       htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
  *	\ingroup    livraison
  *	\brief      File of class to manage receving receipts with template Typhon
  *	\author	    Laurent Destailleur
diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php
index ad20f319ed26c8878fd80f1374737bf377793011..ebe46c78ac380fea8bbab110d7fa001b99bba8fd 100644
--- a/htdocs/livraison/class/livraison.class.php
+++ b/htdocs/livraison/class/livraison.class.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2003      Rodolphe Quiedeville  <rodolphe@quiedeville.org>
- * Copyright (C) 2005-2010 Regis Houssin         <regis.houssin@capnetworks.com>
+ * Copyright (C) 2005-2014 Regis Houssin         <regis.houssin@capnetworks.com>
  * Copyright (C) 2006-2007 Laurent Destailleur   <eldy@users.sourceforge.net>
  * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
  * Copyright (C) 2011-2012 Philippe Grand	     <philippe.grand@atoo-net.com>
@@ -953,7 +953,7 @@ class Livraison extends CommonObject
 			}
 		}
 
-		$modelpath = "core/modules/livraison/pdf/";
+		$modelpath = "core/modules/livraison/doc/";
 
 		return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, 0, 0, 0);
 	}