diff --git a/htdocs/includes/modules/action/rapport.pdf.php b/htdocs/includes/modules/action/rapport.pdf.php
index b7dfc1a24642b5a485660142d644ffd41ae7f599..e7e4eac95059e1834aaeba8031a987425a24333a 100644
--- a/htdocs/includes/modules/action/rapport.pdf.php
+++ b/htdocs/includes/modules/action/rapport.pdf.php
@@ -106,20 +106,6 @@ class CommActionRapport
 
 		if (file_exists($dir))
 		{
-			// Protection et encryption du pdf
-/*			if ($conf->global->PDF_SECURITY_ENCRYPTION)
-			{
-				$pdf=new FPDI_Protection('P','mm',$this->format);
-				$pdfrights = array('print'); // Ne permet que l'impression du document
-				$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-				$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-				$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-			}
-			else
-			{
-				$pdf=new FPDI('P','mm',$this->format);
-			}
-*/
             $pdf=pdf_getInstance($this->format);
 
             if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/commande/pdf_edison.modules.php b/htdocs/includes/modules/commande/pdf_edison.modules.php
index 29e1fff7a3634a83933bd230390d2b8033d745b9..ed5406a52e4fe90a582c409bb01d85e1b552aa5d 100644
--- a/htdocs/includes/modules/commande/pdf_edison.modules.php
+++ b/htdocs/includes/modules/commande/pdf_edison.modules.php
@@ -74,7 +74,7 @@ class pdf_edison extends ModelePDFCommandes
 
 		// Defini position des colonnes
 		$this->posxdesc=$this->marge_gauche+1;
-		$this->posxtva=113;
+		$this->posxtva=111;
 		$this->posxup=126;
 		$this->posxqty=145;
 		$this->posxdiscount=162;
@@ -139,20 +139,6 @@ class pdf_edison extends ModelePDFCommandes
 
 			if (file_exists($dir))
 			{
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/commande/pdf_einstein.modules.php b/htdocs/includes/modules/commande/pdf_einstein.modules.php
index bfe70e745f37736e56b291b1757e4584ec55b760..4fe6322753947bbc59badc66722092d697432432 100644
--- a/htdocs/includes/modules/commande/pdf_einstein.modules.php
+++ b/htdocs/includes/modules/commande/pdf_einstein.modules.php
@@ -88,7 +88,7 @@ class pdf_einstein extends ModelePDFCommandes
 
 		// Defini position des colonnes
 		$this->posxdesc=$this->marge_gauche+1;
-		$this->posxtva=113;
+		$this->posxtva=111;
 		$this->posxup=126;
 		$this->posxqty=145;
 		$this->posxdiscount=162;
@@ -159,20 +159,6 @@ class pdf_einstein extends ModelePDFCommandes
 			{
 				$nblignes = sizeof($object->lines);
 
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php b/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php
index 5c260a3d773e62689660ef5f9b5cba4a7a2514d0..652e792297d4899eff1899c2cb1fd7cf51d48afa 100644
--- a/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php
+++ b/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php
@@ -142,20 +142,6 @@ Class pdf_expedition_merou extends ModelePdfExpedition
 			//Si le dossier existe
 			if (file_exists($dir))
 			{
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('l','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('l','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format,'mm','l');
 
 			    if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php b/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php
index b5ef3fb44a24e517db0054ccd9dd2af7ef87949c..376f2d5640f33072603a4c9b7fd002a264634703 100644
--- a/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php
+++ b/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php
@@ -262,20 +262,6 @@ Class pdf_expedition_rouget extends ModelePdfExpedition
 
 			if (file_exists($dir))
 			{
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php
index 286336f444e0c13265d5913dfb0cfb98526e3d9b..3b9b90cd177aafa36a3b7df56532eac3c25df915 100644
--- a/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php
+++ b/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php
@@ -97,23 +97,39 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     {
         global $conf;
 
+        $invoice_source=new Facture($this->db);
+		if ($object->fk_facture_source > 0)
+		{
+        	$invoice_source->fetch($object->fk_facture_source);
+		}
+		$alreadypayed=price($object->getSommePaiement(),'MT');
+		
         return array(
             'object_id'=>$object->id,
             'object_ref'=>$object->ref,
-            'object_ref_customer'=>$object->ref_client,
+            'object_ref_ext'=>$object->ref_ext,
+        	'object_ref_customer'=>$object->ref_client,
             'object_ref_supplier'=>$object->ref_fournisseur,
-            'object_date'=>dol_print_date($object->date,'day'),
-            'object_date_creation'=>dol_print_date($object->date_creation,'dayhour'),
+            'object_source_invoice_ref'=>$invoice_source->ref,
+        	'object_date'=>dol_print_date($object->date,'day'),
+        	'object_date_limit'=>dol_print_date($object->date_lim_reglement,'dayhour'),
+        	'object_date_creation'=>dol_print_date($object->date_creation,'day'),
+            'object_date_modification'=>dol_print_date($object->date_modification,'day'),
             'object_date_validation'=>dol_print_date($object->date_validation,'dayhour'),
-            'object_total_ht'=>price($object->total_ht),
+            'object_payment_mode'=>$object->mode_reglement,
+            'object_payment_term'=>$object->cond_reglement,
+        	'object_total_ht'=>price($object->total_ht),
             'object_total_vat'=>price($object->total_tva),
             'object_total_ttc'=>price($object->total_ttc),
             'object_vatrate'=>vatrate($object->tva),
             'object_note_private'=>$object->note,
-            'object_note'=>$object->note_public
+            'object_note'=>$object->note_public,
+        	// Payments
+            'object_already_payed'=>$alreadypayed,
+            'object_remain_to_pay'=>price($object->total_ttc - $alreadypayed,'MT')
         );
     }
-
+    
     /**
      * Define array with couple substitution key => substitution value
      *
@@ -223,7 +239,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
         $texte.= '</table>';
 
 		// Scan directories
-		if (sizeof($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': '.sizeof($listoffiles);
+		if (sizeof($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.sizeof($listoffiles).'</b>';
 
 		$texte.= '</td>';
 
@@ -337,6 +353,23 @@ class doc_generic_invoice_odt extends ModelePDFFactures
                     $socobject=$object->client;
                 }
 
+				// Line of free text
+				$newfreetext='';
+				$paramfreetext='FACTURE_FREE_TEXT';
+			    if (! empty($conf->global->$paramfreetext))
+			    {
+			        // Make substitution
+			        $substitutionarray=array(
+						'__FROM_NAME__' => $this->emetteur->nom,
+						'__FROM_EMAIL__' => $this->emetteur->email,
+						'__TOTAL_TTC__' => $object->total_ttc,
+						'__TOTAL_HT__' => $object->total_ht,
+						'__TOTAL_VAT__' => $object->total_vat
+			        );
+			
+			        $newfreetext=make_substitutions($conf->global->$paramfreetext,$substitutionarray,$outputlangs,$object);
+			    }
+			    
                 // Open and load template
 				require_once(DOL_DOCUMENT_ROOT.'/includes/odtphp/odf.php');
 				$odfHandler = new odf($srctemplatepath, array(
@@ -351,8 +384,18 @@ class doc_generic_invoice_odt extends ModelePDFFactures
                 //print html_entity_decode($odfHandler->__toString());
                 //print exit;
 
-				// Make substitutions
-			    $tmparray=$this->get_substitutionarray_user($user,$outputlangs);
+				
+				// Make substitutions into odt
+				if ($newfreetext)
+				{
+					try {
+						$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
+					}
+					catch(OdfException $e)
+					{
+					}
+				}
+				$tmparray=$this->get_substitutionarray_user($user,$outputlangs);
                 //var_dump($tmparray); exit;
                 foreach($tmparray as $key=>$value)
                 {
@@ -410,7 +453,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
 					{
 					}
 				}
-
+				// Replace tags of object
 			    $tmparray=$this->get_substitutionarray_object($object,$outputlangs);
                 foreach($tmparray as $key=>$value)
                 {
@@ -429,7 +472,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
                     {
                     }
                 }
-
+				// Replace tags of lines
                 try
                 {
                     $listlines = $odfHandler->setSegment('lines');
diff --git a/htdocs/includes/modules/facture/doc/pdf_crabe.modules.php b/htdocs/includes/modules/facture/doc/pdf_crabe.modules.php
index e0804fe8ed2a9b82e407d54a919d3339303078c8..f0fd65172eef819b84a79613e61875330b797685 100755
--- a/htdocs/includes/modules/facture/doc/pdf_crabe.modules.php
+++ b/htdocs/includes/modules/facture/doc/pdf_crabe.modules.php
@@ -92,7 +92,7 @@ class pdf_crabe extends ModelePDFFactures
 
 		// Defini position des colonnes
 		$this->posxdesc=$this->marge_gauche+1;
-		$this->posxtva=113;
+		$this->posxtva=111;
 		$this->posxup=126;
 		$this->posxqty=145;
 		$this->posxdiscount=162;
@@ -165,22 +165,6 @@ class pdf_crabe extends ModelePDFFactures
 			{
 				$nblignes = sizeof($object->lines);
 
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-                    if ($conf->global->MAIN_USE_FPDF) $pdf = new FPDI_Protection('P','mm',$this->format);
-                    else $pdf = new FPDI('P','mm',$this->format);
-                    $pdfrights = array('print'); // Ne permet que l'impression du document
-                    if (empty($conf->global->MAIN_USE_FPDF)) $pdfrights[]='assemble';
-                    $pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-                    $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-                    $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
@@ -242,7 +226,6 @@ class pdf_crabe extends ModelePDFFactures
 					$pdf->SetDrawColor(192,192,192);
 //print $pdf->getStringHeight(200,'SPECIMEN',false,false);
 //print "$this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note+1";exit;
-
 					$pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note+1);
 
 					$tab_height = $tab_height - $height_note;
diff --git a/htdocs/includes/modules/facture/doc/pdf_oursin.modules.php b/htdocs/includes/modules/facture/doc/pdf_oursin.modules.php
index f24a0e7b72629912c866f01309e3bb6d802e6044..12cc1769374f14161135a4f7f3e405921f9c885f 100755
--- a/htdocs/includes/modules/facture/doc/pdf_oursin.modules.php
+++ b/htdocs/includes/modules/facture/doc/pdf_oursin.modules.php
@@ -93,7 +93,7 @@ class pdf_oursin extends ModelePDFFactures
 
 		// Defini position des colonnes
 		$this->posxdesc=$this->marge_gauche+1;
-		$this->posxtva=113;
+		$this->posxtva=111;
 		$this->posxup=126;
 		$this->posxqty=145;
 		$this->posxdiscount=162;
@@ -163,21 +163,6 @@ class pdf_oursin extends ModelePDFFactures
 
 			if (file_exists($dir))
 			{
-
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du propri�taire, cr�� al�atoirement si pas d�fini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php
index fd4a957b9b6c949f702d7475a9dc4909d3e1931a..ad281e7f23ae79daa7e918322f85110e2152b67c 100644
--- a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php
+++ b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php
@@ -127,20 +127,6 @@ class pdf_soleil extends ModelePDFFicheinter
 
 			if (file_exists($dir))
 			{
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php b/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php
index 294ed84feea2d47d92279c140bed5893e8c6df40..b6e724875f726f4b7c3240396ed84f11da3c7e91 100644
--- a/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php
+++ b/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php
@@ -117,20 +117,6 @@ class pdf_sirocco extends ModelePDFDeliveryOrder
 
 			if (file_exists($dir))
 			{
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php b/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php
index ffc9b867005078c8af5b43ed55bd81f12c7550c4..a7e5b91dfbc8da1dace0302b6861567f73d34618 100644
--- a/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php
+++ b/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php
@@ -83,7 +83,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
 		// Defini position des colonnes
 		$this->posxdesc=$this->marge_gauche+1;
 		$this->posxcomm=120;
-		$this->posxtva=121;
+		//$this->posxtva=111;
 		$this->posxup=132;
 		$this->posxqty=168;
 		$this->posxdiscount=162;
@@ -140,20 +140,6 @@ class pdf_typhon extends ModelePDFDeliveryOrder
 
 			if (file_exists($dir))
 			{
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/member/cards/pdf_standard.class.php b/htdocs/includes/modules/member/cards/pdf_standard.class.php
index c1d14432ac31fe125312c09ac2037a4b5cb2afb6..c25d94355f7220c374fae3fbeaf7a62763544671 100644
--- a/htdocs/includes/modules/member/cards/pdf_standard.class.php
+++ b/htdocs/includes/modules/member/cards/pdf_standard.class.php
@@ -397,21 +397,6 @@ class pdf_standard {
 			}
 		}
 
-
-		// Protection et encryption du pdf
-/*		if ($conf->global->PDF_SECURITY_ENCRYPTION)
-		{
-			$pdf=new FPDI_Protection('P',$this->Tformat['metric'],$this->format);
-			$pdfrights = array('print'); // Ne permet que l'impression du document
-			$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-			$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-			$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-		}
-		else
-		{
-			$pdf=new FPDI('P',$this->Tformat['metric'],$this->format);
-		}
-*/
         $pdf=pdf_getInstance($this->format,$this->Tformat['metric']);
 
         if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/member/labels/pdf_standardlabel.class.php b/htdocs/includes/modules/member/labels/pdf_standardlabel.class.php
index b51d8e13e0791bddbcbe9990a362a51664b4b9c7..46c7b063b1829dcc73f6f9852d8d0aa8e01827ad 100644
--- a/htdocs/includes/modules/member/labels/pdf_standardlabel.class.php
+++ b/htdocs/includes/modules/member/labels/pdf_standardlabel.class.php
@@ -376,21 +376,6 @@ class pdf_standardlabel {
             }
         }
 
-
-        // Protection et encryption du pdf
-/*        if ($conf->global->PDF_SECURITY_ENCRYPTION)
-        {
-            $pdf=new FPDI_Protection('P',$this->Tformat['metric'],$this->format);
-            $pdfrights = array('print'); // Ne permet que l'impression du document
-            $pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-            $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-            $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-        }
-        else
-        {
-            $pdf=new FPDI('P',$this->Tformat['metric'],$this->format);
-        }
-*/
         $pdf=pdf_getInstance($this->format,$this->Tformat['metric']);
 
         if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/project/pdf/pdf_baleine.modules.php b/htdocs/includes/modules/project/pdf/pdf_baleine.modules.php
index c90cccb0dd96d496269c947d590bed7a6038b151..a8483b52240ddf661566b0a428079f9d0dd937c6 100644
--- a/htdocs/includes/modules/project/pdf/pdf_baleine.modules.php
+++ b/htdocs/includes/modules/project/pdf/pdf_baleine.modules.php
@@ -125,20 +125,6 @@ class pdf_baleine extends ModelePDFProjects
 
 			if (file_exists($dir))
 			{
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
index dafcbe31e4f60dcc968cd2b7fd33f082e71e9bec..c39973fd7a8ea64037fbef3e44aa638737518d94 100644
--- a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
+++ b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php
@@ -87,7 +87,7 @@ class pdf_propale_azur extends ModelePDFPropales
 
 		// Defini position des colonnes
 		$this->posxdesc=$this->marge_gauche+1;
-		$this->posxtva=113;
+		$this->posxtva=111;
 		$this->posxup=126;
 		$this->posxqty=145;
 		$this->posxdiscount=162;
diff --git a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php
index 49b1892bd842d0aa35263c8da5238f29be6891e4..a00ed488846e247acff62c344e2e5ca6ec2e314c 100644
--- a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php
+++ b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php
@@ -132,20 +132,6 @@ class pdf_propale_jaune extends ModelePDFPropales
 
 			if (file_exists($dir))
 			{
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/rapport/pdf_paiement.class.php b/htdocs/includes/modules/rapport/pdf_paiement.class.php
index 9f72bdc6fa1863abe690fde28963257cb6b36bd7..79bcae814e31a50e38107ee6fd40c43adc00eefe 100644
--- a/htdocs/includes/modules/rapport/pdf_paiement.class.php
+++ b/htdocs/includes/modules/rapport/pdf_paiement.class.php
@@ -103,21 +103,6 @@ class pdf_paiement
 		$year = sprintf("%04d",$year);
 		$file = $dir . "/payments-".$year."-".$month.".pdf";
 
-		// Protection et encryption du pdf
-/*		if ($conf->global->PDF_SECURITY_ENCRYPTION)
-		{
-            if ($conf->global->MAIN_USE_FPDF) $pdf = new FPDI_Protection('P','mm',$this->format);
-            else $pdf = new FPDI('P','mm',$this->format);
-            $pdfrights = array('print'); // Ne permet que l'impression du document
-			$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-			$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-			$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-		}
-		else
-		{
-			$pdf=new FPDI('P','mm',$this->format);
-		}
-*/
         $pdf=pdf_getInstance($this->format);
 
         if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php
index beb7cb91cd14fafcaf49a2275a18f19ec29f4999..cb252f05931eab70ea794ae74c635e85214e1bf1 100644
--- a/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php
+++ b/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php
@@ -158,7 +158,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
         $texte.= '</table>';
 
 		// Scan directories
-		if (sizeof($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': '.sizeof($listoffiles);
+		if (sizeof($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.sizeof($listoffiles).'</b>';
 
 		$texte.= '</td>';
 
diff --git a/htdocs/includes/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/includes/modules/supplier_invoice/pdf/pdf_canelle.modules.php
index 3611f1f75b858fe5682c7f0da3075b4ff574b02f..3fdb683e06ff37a3c0c3385754b8b709a704af17 100755
--- a/htdocs/includes/modules/supplier_invoice/pdf/pdf_canelle.modules.php
+++ b/htdocs/includes/modules/supplier_invoice/pdf/pdf_canelle.modules.php
@@ -80,7 +80,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
 
         // Defini position des colonnes
 		$this->posxdesc=$this->marge_gauche+1;
-		$this->posxtva=113;
+		$this->posxtva=111;
 		$this->posxup=126;
 		$this->posxqty=145;
 		$this->posxdiscount=162;
@@ -151,20 +151,6 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
 			{
 				$nblignes = sizeof($object->lines);
 
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php
index 741d4c4e67f69d7f1cf602faa5e920d20e8cda9a..ed520033d75c8fc8eb7d5b17ac31762ef398d60d 100644
--- a/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php
+++ b/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php
@@ -81,7 +81,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
 
 		// Defini position des colonnes
 		$this->posxdesc=$this->marge_gauche+1;
-		$this->posxtva=113;
+		$this->posxtva=111;
 		$this->posxup=126;
 		$this->posxqty=145;
 		$this->posxdiscount=162;
@@ -153,20 +153,6 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
 			{
 				$nblignes = sizeof($object->lines);
 
-				// Protection et encryption du pdf
-/*				if ($conf->global->PDF_SECURITY_ENCRYPTION)
-				{
-					$pdf=new FPDI_Protection('P','mm',$this->format);
-					$pdfrights = array('print'); // Ne permet que l'impression du document
-					$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
-					$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini
-					$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
-				}
-				else
-				{
-					$pdf=new FPDI('P','mm',$this->format);
-				}
-*/
                 $pdf=pdf_getInstance($this->format);
 
                 if (class_exists('TCPDF'))
diff --git a/htdocs/install/default.css b/htdocs/install/default.css
index dcc953ce5b657d4088311ee4e07136b392768a2f..ed5237d940f8d3d5b6da7bc5f6e120af49ebbcd5 100644
--- a/htdocs/install/default.css
+++ b/htdocs/install/default.css
@@ -177,7 +177,7 @@ color: black;
 padding: 5px 5px 5px 5px;
 margin: 0em 0em 0em 0em;
 text-decoration:none;
-font-size: 13px;
+font-size: 12px;
 border-bottom: 1px solid #8CACBB;
 }
 
@@ -198,3 +198,9 @@ div.visible {
 div.hidden {
     display: none;
 }
+
+ul {
+	margin: 0;
+	padding-top: 0;
+	padding-bottom: 0;
+}
diff --git a/htdocs/install/doctemplates/invoices/template_invoice.odt b/htdocs/install/doctemplates/invoices/template_invoice.odt
index cbc74a9bf239bc10aa830ecc3398382a59c39635..c1693757a7cd03dbe58c9547825c00428a94736e 100644
Binary files a/htdocs/install/doctemplates/invoices/template_invoice.odt and b/htdocs/install/doctemplates/invoices/template_invoice.odt differ
diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php
index f364fdcb8f699c9c55407ea91fb0b51296a78f3d..d0bec95443bb2d412179ba71305cac6cfaf54367 100644
--- a/htdocs/install/fileconf.php
+++ b/htdocs/install/fileconf.php
@@ -40,8 +40,9 @@ $langs->load("errors");
 
 // You can force preselected values of the config step of Dolibarr by adding a file
 // install.forced.php into directory htdocs/install (This is the case with some installer
-// lile DoliWamp, DoliMamp or DoliDeb.
+// lile DoliWamp, DoliMamp or DoliBuntu.
 // We first init "forced values" to nothing.
+if (! isset($force_install_noedit))            $force_install_noedit='';
 if (! isset($force_install_type))              $force_install_type='';
 if (! isset($force_install_port))              $force_install_port='';
 if (! isset($force_install_database))          $force_install_database='';
@@ -121,7 +122,10 @@ if (! empty($force_install_message))
     	}
     	?>
 		<td class="label" valign="top">
-		<input type="text" size="60" value="<?php print $dolibarr_main_document_root; ?>"<?php print (empty($todoforce_install_main_data_root)?'':' disabled="true"'); ?> name="main_dir">
+		<?php 
+		if ($force_install_noedit) print '<input type="hidden" value="'.$dolibarr_main_document_root.'" name="main_dir">'; 
+		print '<input type="text" size="60" value="'.$dolibarr_main_document_root.'"'.(empty($force_install_noedit)?'':' disabled="true"').' name="main_dir'.$force_install_noedit.'">';
+		?>
 		</td>
 		<td class="comment"><?php
 		print $langs->trans("WithNoSlashAtTheEnd")."<br>";