diff --git a/htdocs/comm/list.php b/htdocs/comm/list.php
index e7d6cd2811dee1861b2d6f2a3aba9fbaf8d7a195..28696228e459605107ad6a19005d6d12a3c4c253 100755
--- a/htdocs/comm/list.php
+++ b/htdocs/comm/list.php
@@ -137,6 +137,8 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
 $sql.= $db->order($sortfield,$sortorder);
 $sql.= $db->plimit($conf->liste_limit +1, $offset);
 
+dol_syslog('comm:list.php: sql='.$sql,LOG_DEBUG);
+
 $result = $db->query($sql);
 if ($result)
 {
diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php
index 0f4264b223f01456660cf0530f5018a98252bf33..c56516257f77de97ff14d339ff82a602ea5ecf15 100755
--- a/htdocs/core/class/commondocgenerator.class.php
+++ b/htdocs/core/class/commondocgenerator.class.php
@@ -245,10 +245,10 @@ abstract class CommonDocGenerator
 	    	$array_key.'_payment_mode'=>($outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code)!='PaymentType'.$object->mode_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentType'.$object->mode_reglement_code):$object->mode_reglement),
 	    	$array_key.'_payment_term_code'=>$object->cond_reglement_code,
 	    	$array_key.'_payment_term'=>($outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code)!='PaymentCondition'.$object->cond_reglement_code?$outputlangs->transnoentitiesnoconv('PaymentCondition'.$object->cond_reglement_code):$object->cond_reglement),
-	    	$array_key.'_total_ht'=>price2num($object->total_ht2,2),
-	    	$array_key.'_total_vat'=>price2num($object->total_tva,2),
-	    	$array_key.'_total_ttc'=>price2num($object->total_ttc,2),
-	    	$array_key.'_total_discount_ht' => price2num($object->getTotalDiscount(),2),
+	    	$array_key.'_total_ht'=>price($object->total_ht2),
+	    	$array_key.'_total_vat'=>price($object->total_tva),
+	    	$array_key.'_total_ttc'=>price($object->total_ttc),
+	    	$array_key.'_total_discount_ht' => price($object->getTotalDiscount()),
 	    	$array_key.'_vatrate'=>vatrate($object->tva),
 	    	$array_key.'_note_private'=>$object->note,
 	    	$array_key.'_note'=>$object->note_public,
@@ -293,12 +293,12 @@ abstract class CommonDocGenerator
     	'line_product_label'=>$line->product_label,
     	'line_desc'=>$line->desc,
     	'line_vatrate'=>vatrate($line->tva_tx,true,$line->info_bits),
-    	'line_up'=>price2num($line->subprice, 2),
+    	'line_up'=>price($line->subprice),
     	'line_qty'=>$line->qty,
     	'line_discount_percent'=>($line->remise_percent?$line->remise_percent.'%':''),
-    	'line_price_ht'=>price2num($line->total_ht,2),
-    	'line_price_ttc'=>price2num($line->total_ttc,2),
-    	'line_price_vat'=>price2num($line->total_tva,2),
+    	'line_price_ht'=>price($line->total_ht),
+    	'line_price_ttc'=>price($line->total_ttc),
+    	'line_price_vat'=>price($line->total_tva),
     	'line_date_start'=>$line->date_start,
     	'line_date_end'=>$line->date_end
     	);
diff --git a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
index 3330f491e707eba441008f61e19e312027d326e3..623a6b9c8c6658513d9c55c7ffcb026e0a73f82f 100644
--- a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
+++ b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
@@ -520,10 +520,20 @@ class doc_generic_order_odt extends ModelePDFCommandes
 
 				// Write new file
 				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
-					$odfHandler->exportAsAttachedPDF($file);
+					try {
+						$odfHandler->exportAsAttachedPDF($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}
 				else {
+					try {
 					$odfHandler->saveToDisk($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}	
 
 				if (! empty($conf->global->MAIN_UMASK))
diff --git a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
index 8aa417c83c022b679d54af1ae0f7d169ba98d411..b65c61714308a9a99801bbd88feb1eb2be3be558 100644
--- a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
+++ b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
@@ -498,10 +498,20 @@ class doc_generic_invoice_odt extends ModelePDFFactures
 
 				// Write new file
 				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
-					$odfHandler->exportAsAttachedPDF($file);
+					try {
+						$odfHandler->exportAsAttachedPDF($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}
 				else {
+					try {
 					$odfHandler->saveToDisk($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}	
 
 				if (! empty($conf->global->MAIN_UMASK))
diff --git a/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
index 4c81babaa551cf0faaed57d29a82c470e5f38f39..a2f8c5fd07a5da01fd2404bcec6b646e1e97ea62 100644
--- a/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
+++ b/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
@@ -974,10 +974,20 @@ class doc_generic_project_odt extends ModelePDFProjects
 
 				// Write new file
 				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
-					$odfHandler->exportAsAttachedPDF($file);
+					try {
+						$odfHandler->exportAsAttachedPDF($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}
 				else {
+					try {
 					$odfHandler->saveToDisk($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}	
 
 				if (! empty($conf->global->MAIN_UMASK))
diff --git a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
index d4e485562a4d139991fa8b57a1932696104a1cdf..6a7384ba4d9915977ac05ab0384841b1ea57c86a 100644
--- a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
+++ b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
@@ -483,10 +483,20 @@ class doc_generic_proposal_odt extends ModelePDFPropales
 
 				// Write new file
 				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
-					$odfHandler->exportAsAttachedPDF($file);
+					try {
+						$odfHandler->exportAsAttachedPDF($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}
 				else {
+					try {
 					$odfHandler->saveToDisk($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}	
 
 				if (! empty($conf->global->MAIN_UMASK))
diff --git a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
index e748e45a498fbc33565552ba4011d1199ae2f18e..6ab06aef2e9fed32612d2357a0196eb259a98e40 100644
--- a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
+++ b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
@@ -325,10 +325,20 @@ class doc_generic_odt extends ModeleThirdPartyDoc
 
 				// Write new file
 				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
-					$odfHandler->exportAsAttachedPDF($file);
+					try {
+						$odfHandler->exportAsAttachedPDF($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}
 				else {
+					try {
 					$odfHandler->saveToDisk($file);
+					}catch (Exception $e){
+						$this->error=$e->getMessage();
+						return -1;
+					}
 				}	
 
 				if (! empty($conf->global->MAIN_UMASK))
diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php
index 4f91157438b9aec4baa15a20142364a4ec3d1381..5326af0e1161fe8c2224ba5b5b3129b6727745d1 100644
--- a/htdocs/includes/odtphp/odf.php
+++ b/htdocs/includes/odtphp/odf.php
@@ -452,14 +452,18 @@ IMG;
 		 
 		if( $name == "" ) $name = md5(uniqid());
 
-		//dol_syslog(get_class($this).'::exportAsAttachedPDF $name='.$name, LOG_DEBUG);
+		dol_syslog(get_class($this).'::exportAsAttachedPDF $name='.$name, LOG_DEBUG);
 		$this->saveToDisk($name);
 
 		$execmethod=(empty($conf->global->MAIN_EXEC_USE_POPEN)?1:2);	// 1 or 2
-		 
+		
 		$name=str_replace('.odt', '', $name);
 		$command = DOL_DOCUMENT_ROOT.'/includes/odtphp/odt2pdf.sh '.$name;
-		//dol_syslog('$execmethod='.$execmethod.' Run command='.$command);
+		
+		//$dirname=dirname($name);
+		//$command = DOL_DOCUMENT_ROOT.'/includes/odtphp/odt2pdf.sh '.$name.' '.$dirname;
+		
+		dol_syslog(get_class($this).'::exportAsAttachedPDF $execmethod='.$execmethod.' Run command='.$command,LOG_DEBUG);
 		if ($execmethod == 1)
 		{
 			exec($command, $output_arr, $retval);
@@ -470,7 +474,7 @@ IMG;
 			$handle = fopen($outputfile, 'w');
 			if ($handle)
 			{
-				dol_syslog("Run command ".$command);
+				dol_syslog(get_class($this)."Run command ".$command,LOG_DEBUG);
 				$handlein = popen($command, 'r');
 				while (!feof($handlein))
 				{
@@ -486,7 +490,7 @@ IMG;
 
 		if($retval == 0)
 		{
-			//dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG);
+			dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG);
 			if (headers_sent($filename, $linenum)) {
 				throw new OdfException("headers already sent ($filename at $linenum)");
 			}
@@ -498,12 +502,18 @@ IMG;
 			}
 			unlink("$name.odt");
 		} else {
-			//dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG);
-			//dol_syslog(get_class($this).'::exportAsAttachedPDF $output_arr='.var_export($output_arr,true), LOG_DEBUG);
-			echo "Error occured:<br>";
-			foreach($output_arr as $line)
-				echo $line."<br>";
-			//dol_syslog(get_class($this).'::exportAsAttachedPDF ERROR $line='.$line, LOG_DEBUG);
+			dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG);
+			dol_syslog(get_class($this).'::exportAsAttachedPDF $output_arr='.var_export($output_arr,true), LOG_DEBUG);
+			
+			if ($retval==126) {
+				throw new OdfException('Permission execute convert script : ' . $command);
+			}
+			else {
+				foreach($output_arr as $line) {
+					$errors.= $line."<br>";
+				}
+				throw new OdfException('ODT to PDF convert fail : ' . $errors);
+			}
 		}
 	}
 
diff --git a/htdocs/includes/odtphp/odt2pdf.sh b/htdocs/includes/odtphp/odt2pdf.sh
index b971068246555ec225020c988c2281982392eb1b..9268b4a680f6d14f9795acf519b7fd540ba8e69e 100755
--- a/htdocs/includes/odtphp/odt2pdf.sh
+++ b/htdocs/includes/odtphp/odt2pdf.sh
@@ -1,22 +1,45 @@
 #!/bin/bash
 # @copyright  GPL License 2010 -  Vikas Mahajan - http://vikasmahajan.wordpress.com
+# @copyright  GPL License 2013 -  Florian HEnry - florian.henry@open-concept.pro
+
+#
+#if [ -f "$1.odt" ]
+# then
+#    soffice --invisible --convert-to pdf:writer_pdf_Export --outdir $2 "$1.odt"
+#    retcode=$?
+#    if [ $retcode -ne 0 ]
+#     then
+#      echo "Error while converting odt to pdf: $retcode";
+#      exit 1
+#    fi
+# else
+#  echo "Error: Odt file does not exist"
+#  exit 1
+#fi
 
 if [ -f "$1.odt" ]
-then
-pgrep -U `id -u` soffice
-if [ $? -ne 0 ]
-then
-soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
-sleep 2
-fi
-jodconverter "$1.odt" "$1.pdf"
-if [ $? -ne 0 ]
-then
-echo "Error while converting odt to pdf"
-exit 1
-fi
-sleep 1
-else
-echo "Error: Odt file does not exist"
-exit 1
+ then
+  nbprocess=$(pgrep -c soffice)
+  if [ $nbprocess -ne 1 ]
+   then
+    soffice --invisible --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard --headless
+    retcode=$?
+    if [ $retcode -ne 0 ]
+     then
+      echo "Error running soffice: $retcode"
+      exit 1
+    fi
+    sleep 2
+  fi
+  jodconverter "$1.odt" "$1.pdf"
+  retcode=$?
+  if [ $retcode -ne 0 ]
+   then
+    echo "Error while converting odt to pdf: $retcode"
+    exit 1
+  fi
+  sleep 1
+ else
+  echo "Error: Odt file does not exist"
+  exit 1
 fi
diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang
index 2ef97b1cb2667af2fbf505456fbc52b1d73d0ac5..fc0264e1826727014be844a4f0b14d70039f0d58 100644
--- a/htdocs/langs/ca_ES/admin.lang
+++ b/htdocs/langs/ca_ES/admin.lang
@@ -354,6 +354,7 @@ ExtrafieldPhone=Telèfon
 ExtrafieldPrice=Preu
 ExtrafieldMail=Correu
 ExtrafieldSelect=Llista de selecció
+ExtrafieldSelectList=Llista de selecció de table
 ExtrafieldSeparator=Separador
 ExtrafieldCheckBox=Casella de verificació
 ExtrafieldRadio=Botó de selecció excloent
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 13cd8e505f859088737551c8de64d46900be564e..d569e0a261d0f6cc2a6a96db1c697d6803c1fcf6 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -359,6 +359,7 @@ ExtrafieldPhone = Phone
 ExtrafieldPrice = Price
 ExtrafieldMail = Email
 ExtrafieldSelect = Select list
+ExtrafieldSelectList = Select from table
 ExtrafieldSeparator=Separator
 ExtrafieldCheckBox=Checkbox
 ExtrafieldRadio=Radio button
diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang
index 86b6cba5a971a413a5cbe5ef6f2b5f1c23c9de6e..fe4aeba479c54acaf165d6192865fee4dd9912a0 100644
--- a/htdocs/langs/es_ES/admin.lang
+++ b/htdocs/langs/es_ES/admin.lang
@@ -356,6 +356,7 @@ ExtrafieldPhone=Teléfono
 ExtrafieldPrice=Precio
 ExtrafieldMail=Correo
 ExtrafieldSelect=Lista de selección
+ExtrafieldSelectList=Llista de selección de table
 ExtrafieldSeparator=Separador
 ExtrafieldCheckBox=Casilla de verificación
 ExtrafieldRadio=Botón de selección excluyente
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 3b1d3c2f7bcf676bd2de00df1db0b4bd808342e9..1dbd9f6df487e1fe269c861bd8e43aee487bcfc1 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -356,6 +356,7 @@ ExtrafieldPhone = Téléphone
 ExtrafieldPrice = Prix
 ExtrafieldMail = Email
 ExtrafieldSelect = Liste de sélection
+ExtrafieldSelectList = Liste issue d'une table
 ExtrafieldSeparator = Séparateur de champ
 ExtrafieldCheckBox=Case à cocher
 ExtrafieldRadio=Case d'option
diff --git a/htdocs/product/liste.php b/htdocs/product/liste.php
index 9fb9aa8de51a3c9f308194716a1197971a9770be..29188400653b735d4906df2bd18e36b7f3a7b4a3 100644
--- a/htdocs/product/liste.php
+++ b/htdocs/product/liste.php
@@ -169,7 +169,7 @@ else
     $sql.= $db->order($sortfield,$sortorder);
     $sql.= $db->plimit($limit + 1, $offset);
 
-    dol_syslog("sql=".$sql);
+    dol_syslog("product:list.php: sql=".$sql);
     $resql = $db->query($sql);
     if ($resql)
     {