diff --git a/ChangeLog b/ChangeLog
index ecd695878e02f9f01d7b1f0b985ca2b7cf2fc934..14a411fa23d12067a6a9bdfd17107b035b6193c4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -36,8 +36,12 @@ Fix: If multiprice level is used the VAT on addline is not correct
 Fix: [ bug #1254 ] Error when using "Enter" on qty input box of a product (on supplier order part)
 Fix: [ bug #1462, 1468, 1480, 1483, 1490, 1497] $this instead of $object
 Fix: [ bug #1455 ] outstanding amount
-Fix: [ bug #1425 ]
 Fix: [ bug #1425 ] LINEBILL_SUPPLIER_DELETE failure trigger leads to an endless loop
+Fix: [ bug #1460 ] Several supplier order triggers do not show error messages
+Fix: [ bug #1461 ] LINEORDER_SUPPLIER_CREATE does not intercept supplier order line insertion
+Fix: [ bug #1484 ] BILL_SUPPLIER_PAYED trigger action does not intercept failure under some circumstances
+Fix: [ bug #1482 ] Several supplier invoice triggers do not show trigger error messages
+Fix: [ bug #1486 ] LINEBILL_SUPPLIER_CREATE and LINEBILL_SUPPLIER_UPDATE triggers do not intercept trigger action
 
 ***** ChangeLog for 3.5.3 compared to 3.5.2 *****
 Fix: Error on field accountancy code for export profile of invoices.
diff --git a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
index e3257e2bda864c7b3b0c8d1241346cb546dd68f1..e7892582e08f6cf2602f669e077d8204e125d992 100644
--- a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
+++ b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
@@ -257,10 +257,30 @@ class InterfaceDemo
         {
             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
         }
+        elseif ($action == 'ORDER_SUPPLIER_CLONE')
+        {
+            dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }      
         elseif ($action == 'ORDER_SUPPLIER_VALIDATE')
         {
             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
         }
+        elseif ($action == 'ORDER_SUPPLIER_DELETE')
+        {   
+            dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
+        elseif ($action == 'ORDER_SUPPLIER_APPROVE')
+        {   
+            dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
+        elseif ($action == 'ORDER_SUPPLIER_REFUSE')
+        {   
+            dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
+        elseif ($action == 'ORDER_SUPPLIER_CANCEL')
+        {   
+            dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
         elseif ($action == 'ORDER_SUPPLIER_SENTBYMAIL')
         {
             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
@@ -411,6 +431,28 @@ class InterfaceDemo
         {
             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
         }
+
+		//Supplier Bill
+		elseif ($action == 'BILL_SUPPLIER_CREATE')
+        {
+             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
+		elseif ($action == 'BILL_SUPPLIER_DELETE')
+        {
+             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
+		elseif ($action == 'BILL_SUPPLIER_PAYED')
+        {
+             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
+		elseif ($action == 'BILL_SUPPLIER_UNPAYED')
+        {
+             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
+		elseif ($action == 'BILL_SUPPLIER_VALIDATE')
+        {
+             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
+        }
 		elseif ($action == 'LINEBILL_SUPPLIER_CREATE')
         {
             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
@@ -423,7 +465,7 @@ class InterfaceDemo
         {
             dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
         }
-        
+ 
         // Payments
         elseif ($action == 'PAYMENT_CUSTOMER_CREATE')
         {
diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php
index c67b15bc61926873ae373d88b1fd1f0684545dba..0a0067f1105c11d4bbd39a514c30b73096a52b58 100644
--- a/htdocs/fourn/class/fournisseur.commande.class.php
+++ b/htdocs/fourn/class/fournisseur.commande.class.php
@@ -390,7 +390,13 @@ class CommandeFournisseur extends CommonOrder
                 include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
                 $interface=new Interfaces($this->db);
                 $result=$interface->run_triggers('ORDER_SUPPLIER_VALIDATE',$this,$user,$langs,$conf);
-                if ($result < 0) { $error++; $this->errors=$interface->errors; }
+                if ($result < 0) 
+                { 
+                    $error++; 
+                    $this->errors=$interface->errors;
+                    $this->db->rollback();
+                    return -1;
+                }
                 // Fin appel triggers
             }
 
@@ -401,9 +407,9 @@ class CommandeFournisseur extends CommonOrder
             }
             else
             {
+                $this->error=$this->db->lasterror();
                 dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
                 $this->db->rollback();
-                $this->error=$this->db->lasterror();
                 return -1;
             }
         }
@@ -743,8 +749,7 @@ class CommandeFournisseur extends CommonOrder
                 }
                 else
                 {
-                    $this->db->rollback();
-                    $this->error=$this->db->lasterror();
+                    $this->db->rollback();               
                     return -1;
                 }
             }
@@ -779,9 +784,11 @@ class CommandeFournisseur extends CommonOrder
         $result = 0;
         if ($user->rights->fournisseur->commande->approuver)
         {
+            $this->db->begin();
+            
             $sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = 9";
-            $sql .= " WHERE rowid = ".$this->id;
-
+            $sql .= " WHERE rowid = ".$this->id;         
+            
             if ($this->db->query($sql))
             {
                 $result = 0;
@@ -793,12 +800,19 @@ class CommandeFournisseur extends CommonOrder
                     include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
                     $interface=new Interfaces($this->db);
                     $result=$interface->run_triggers('ORDER_SUPPLIER_REFUSE',$this,$user,$langs,$conf);
-                    if ($result < 0) { $error++; $this->errors=$interface->errors; }
+                    if ($result < 0) 
+                    { 
+                        $error++;
+                        $this->errors=$interface->errors;
+                        $this->db->rollback();   
+                    }
                     // Fin appel triggers
                 }
             }
             else
             {
+                $this->db->rollback();
+                $this->error=$this->db->lasterror();
                 dol_syslog(get_class($this)."::refuse Error -1");
                 $result = -1;
             }
@@ -855,7 +869,6 @@ class CommandeFournisseur extends CommonOrder
                 else
                 {
                     $this->db->rollback();
-                    $this->error=$this->db->lasterror();
                     return -1;
                 }
             }
@@ -1039,7 +1052,13 @@ class CommandeFournisseur extends CommonOrder
 	                    include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
 	                    $interface=new Interfaces($this->db);
 	                    $result=$interface->run_triggers('ORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf);
-	                    if ($result < 0) { $error++; $this->errors=$interface->errors; }
+	                    if ($result < 0) 
+	                    {
+	                        $error++;
+	                        $this->errors=$interface->errors;
+	                        $this->db->rollback();
+	                        return -1;
+	                    }
 	                    // Fin appel triggers
 	                }
 
@@ -1286,7 +1305,13 @@ class CommandeFournisseur extends CommonOrder
                     include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
                     $interface=new Interfaces($this->db);
                     $result=$interface->run_triggers('LINEORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf);
-                    if ($result < 0) { $error++; $this->errors=$interface->errors; }
+                    if ($result < 0) 
+                    { 
+                        $error++;
+                        $this->errors=$interface->errors;
+                        $this->db->rollback();
+                        return -1;
+                    }
                     // Fin appel triggers
                 }
 
@@ -1351,7 +1376,13 @@ class CommandeFournisseur extends CommonOrder
                     include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
                     $interface=new Interfaces($this->db);
                     $result=$interface->run_triggers('LINEORDER_SUPPLIER_DISPATCH',$this,$user,$langs,$conf);
-                    if ($result < 0) { $error++; $this->errors=$interface->errors; }
+                    if ($result < 0)
+                    { 
+                        $error++;
+                        $this->errors=$interface->errors;
+                        $this->db->rollback();
+                        return -1;
+                    }
                     // Fin appel triggers
                 }
 
@@ -1380,6 +1411,7 @@ class CommandeFournisseur extends CommonOrder
                 }
             }
 
+            //TODO: Check if there is a current transaction in DB but seems not.
             if ($error == 0)
             {
                 $this->db->commit();
@@ -1410,7 +1442,8 @@ class CommandeFournisseur extends CommonOrder
         {
             $sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE rowid = ".$idligne;
             $resql=$this->db->query($sql);
-
+            
+            //TODO: Add trigger for deleted line
             dol_syslog(get_class($this)."::deleteline sql=".$sql);
             if ($resql)
             {
@@ -1457,11 +1490,13 @@ class CommandeFournisseur extends CommonOrder
         {
             if ($this->db->affected_rows($resql) < 1)
             {
+                $this->error=$this->db->lasterror();
                 $error++;
             }
         }
         else
         {
+            $this->error=$this->db->lasterror();
             $error++;
         }
 
@@ -1524,7 +1559,6 @@ class CommandeFournisseur extends CommonOrder
 		}
 		else
 		{
-			$this->error=$this->db->lasterror();
 			dol_syslog(get_class($this)."::delete ".$this->error, LOG_ERR);
 			$this->db->rollback();
 			return -$error;
@@ -1725,7 +1759,7 @@ class CommandeFournisseur extends CommonOrder
         $resql = $this->db->query($sql);
         if ($resql)
         {
-
+            //TODO: Add trigger for status modification
         }
         else
         {
@@ -1849,7 +1883,13 @@ class CommandeFournisseur extends CommonOrder
                     include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
                     $interface=new Interfaces($this->db);
                     $result=$interface->run_triggers('LINEORDER_SUPPLIER_UPDATE',$this,$user,$langs,$conf);
-                    if ($result < 0) { $error++; $this->errors=$interface->errors; }
+                    if ($result < 0)
+                    {
+                        $error++;
+                        $this->errors=$interface->errors;
+                        $this->db->rollback();
+                        return -1;
+                    }
                     // Fin appel triggers
                 }
 
diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php
index 6f9d132a477fe00f663661286124991726397809..6e0e8732410f2314255135c498204a6191bf7b87 100644
--- a/htdocs/fourn/class/fournisseur.facture.class.php
+++ b/htdocs/fourn/class/fournisseur.facture.class.php
@@ -651,7 +651,10 @@ class FactureFournisseur extends CommonInvoice
         	$interface=new Interfaces($this->db);
         	$result=$interface->run_triggers('BILL_SUPPLIER_DELETE',$this,$user,$langs,$conf);
         	if ($result < 0) {
-        		$error++; $this->errors=$interface->errors;
+        		$error++;
+        		$this->errors=$interface->errors;
+        		$this->db->rollback();
+        	    return -1;      		
         	}
         	// Fin appel triggers
         }
@@ -1103,7 +1106,13 @@ class FactureFournisseur extends CommonInvoice
                     include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
                     $interface=new Interfaces($this->db);
                     $result=$interface->run_triggers('LINEBILL_SUPPLIER_CREATE',$this,$user,$langs,$conf);
-                    if ($result < 0) { $error++; $this->errors=$interface->errors; }
+                    if ($result < 0) 
+                    { 
+                        $error++;
+                        $this->errors=$interface->errors;
+                        $this->db->rollback();
+                        return -1;
+                    }
                     // Fin appel triggers
                 }
 
@@ -1193,6 +1202,8 @@ class FactureFournisseur extends CommonInvoice
             $product_type = $type;
         }
 
+        $this->db->begin();
+        
         $sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det SET";
         $sql.= " description ='".$this->db->escape($desc)."'";
         $sql.= ", pu_ht = ".price2num($pu_ht);
@@ -1228,17 +1239,26 @@ class FactureFournisseur extends CommonInvoice
                 include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
                 $interface=new Interfaces($this->db);
                 $result=$interface->run_triggers('LINEBILL_SUPPLIER_UPDATE',$this,$user,$langs,$conf);
-                if ($result < 0) { $error++; $this->errors=$interface->errors; }
+                if ($result < 0) 
+                {
+                    $error++;
+                    $this->errors=$interface->errors;
+                    $this->db->rollback();
+                    return -1;
+                }
                 // Fin appel triggers
             }
 
             // Update total price into invoice record
             $result=$this->update_price();
 
+            $this->db->commit();
+            
             return $result;
         }
         else
         {
+            $this->db->rollback();
             $this->error=$this->db->lasterror();
             dol_syslog(get_class($this)."::updateline error=".$this->error, LOG_ERR);
             return -1;
diff --git a/htdocs/fourn/commande/fiche.php b/htdocs/fourn/commande/fiche.php
index 24b80a60f94c329a0c761e8e1306dd9ae2441d28..04a3b90581dfadbc5f0286649d8d26a721e21257 100644
--- a/htdocs/fourn/commande/fiche.php
+++ b/htdocs/fourn/commande/fiche.php
@@ -931,7 +931,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
 
                         if ($error)
                         {
-                            dol_print_error($db);
+                            setEventMessage($object->error, 'errors');
                         }
                         else
                         {
@@ -1057,6 +1057,7 @@ if ($action=="create")
 	print_fiche_titre($langs->trans('NewOrder'));
 
 	dol_htmloutput_mesg($mesg);
+	dol_htmloutput_events();
 
 	$societe='';
 	if ($socid>0)
diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php
index d0bc7e5dfa479840b7a3041267ceab5af8a08aeb..f8b991969e12c07dd5c2e0d3cd03bb8af82e38c0 100644
--- a/htdocs/fourn/facture/fiche.php
+++ b/htdocs/fourn/facture/fiche.php
@@ -188,6 +188,10 @@ elseif ($action == 'confirm_paid' && $confirm == 'yes' && $user->rights->fournis
 {
     $object->fetch($id);
     $result=$object->set_paid($user);
+    if ($result<0)
+    {
+        setEventMessage($object->error,'errors');
+    }
 }
 
 // Set supplier ref
@@ -524,6 +528,10 @@ elseif ($action == 'update_line' && $user->rights->fournisseur->facture->creer)
         {
             unset($_POST['label']);
         }
+        else
+        {
+            setEventMessage($object->error,'errors');
+        }
     }
 }
 
@@ -1074,6 +1082,7 @@ if ($action == 'create')
     print_fiche_titre($langs->trans('NewBill'));
 
     dol_htmloutput_mesg($mesg);
+    dol_htmloutput_events();
 
     $societe='';
     if ($_GET['socid'])
diff --git a/htdocs/holiday/month_report.php b/htdocs/holiday/month_report.php
index df9206dfcc528244b8cfcdf7cac23bfab288ae9e..34b0f12f483408782abf6177ae22f4136984ad11 100644
--- a/htdocs/holiday/month_report.php
+++ b/htdocs/holiday/month_report.php
@@ -61,8 +61,8 @@ if(empty($year)) {
 }
 
 $sql = "SELECT cp.rowid, cp.fk_user, cp.date_debut, cp.date_fin, cp.halfday";
-$sql.= " FROM llx_holiday cp";
-$sql.= " LEFT JOIN llx_user u ON cp.fk_user = u.rowid";
+$sql.= " FROM " . MAIN_DB_PREFIX . "holiday cp";
+$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "user u ON cp.fk_user = u.rowid";
 $sql.= " WHERE cp.statut = 3";	// Approved
 // TODO Use BETWEEN instead of date_format
 $sql.= " AND (date_format(cp.date_debut, '%Y-%c') = '$year-$month' OR date_format(cp.date_fin, '%Y-%c') = '$year-$month')";
diff --git a/htdocs/product/stock/lib/replenishment.lib.php b/htdocs/product/stock/lib/replenishment.lib.php
index 09c39e7661d03b487c83323cfdd47718efafbb2f..2cc8337ae69b1687f2c51ed20d10255794953cd3 100644
--- a/htdocs/product/stock/lib/replenishment.lib.php
+++ b/htdocs/product/stock/lib/replenishment.lib.php
@@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.commande.class.php';
 function dispatched($order_id)
 {
     global $db;
-    $sql = 'SELECT fk_product, SUM(qty) from llx_commande_fournisseur_dispatch';
+    $sql = 'SELECT fk_product, SUM(qty) FROM ' . MAIN_DB_PREFIX . 'commande_fournisseur_dispatch';
     $sql .= ' WHERE fk_commande = ' . $order_id . ' GROUP BY fk_product';
     $sql .= ' ORDER by fk_product';
     $resql = $db->query($sql);
@@ -44,7 +44,7 @@ function dispatched($order_id)
         while($res = $db->fetch_object($resql))
             $dispatched[] = $res;
     }
-    $sql = 'SELECT fk_product, SUM(qty) from llx_commande_fournisseurdet';
+    $sql = 'SELECT fk_product, SUM(qty) FROM ' . MAIN_DB_PREFIX . 'commande_fournisseurdet';
     $sql .= ' WHERE fk_commande = ' . $order_id . ' GROUP BY fk_product';
     $sql .= ' ORDER by fk_product';
     $resql = $db->query($sql);