diff --git a/htdocs/product/card.php b/htdocs/product/card.php
index bdb19e39a6df67fdb9104c1f942956a9f4613dd1..91ae9c86f1641d34c35a20792dfc941e4b96f6d7 100644
--- a/htdocs/product/card.php
+++ b/htdocs/product/card.php
@@ -186,7 +186,7 @@ if (empty($reshook))
         }
         if (! empty(GETPOST('duration_value')) && empty(GETPOST('duration_unit')))
         {
-            setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('Unit')), 'errors');
+            setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('Unit')), null, 'errors');
             $action = "create";
             $error++;
         }
diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php
index 5af9e9d57c3db8693c729586f478fd9ee0ef62d3..1cda2b97f681f560c19b879e0e467933d54c2bcb 100644
--- a/htdocs/projet/activity/perday.php
+++ b/htdocs/projet/activity/perday.php
@@ -116,7 +116,7 @@ if ($action == 'assign')
 		if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 		{
 			$langs->load("errors");
-			setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'warnings');
+			setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'warnings');
 		}
 		else
 		{
@@ -195,7 +195,7 @@ if ($action == 'addtime' && $user->rights->projet->creer)
 
     	if (! $error)
     	{
-	    	setEventMessage($langs->trans("RecordSaved"));
+	    	setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 
     	    // Redirect to avoid submit twice on back
         	header('Location: '.$_SERVER["PHP_SELF"].($projectid?'?id='.$projectid:'?').($mode?'&mode='.$mode:'').'&year='.$yearofday.'&month='.$monthofday.'&day='.$dayofday);
@@ -204,7 +204,7 @@ if ($action == 'addtime' && $user->rights->projet->creer)
     }
     else
     {
-	    setEventMessage($langs->trans("ErrorTimeSpentIsEmpty"), 'errors');
+	    setEventMessages($langs->trans("ErrorTimeSpentIsEmpty"), null, 'errors');
     }
 }
 
diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php
index 8a65dfe4162ce43c7ac031da2584a40b2b09575e..cef0f2ebf8b2c12465f279ceb4550c3d5a0ac7d2 100644
--- a/htdocs/projet/activity/perweek.php
+++ b/htdocs/projet/activity/perweek.php
@@ -129,7 +129,7 @@ if ($action == 'assign')
 		if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 		{
 			$langs->load("errors");
-			setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'warnings');
+			setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'warnings');
 		}
 		else
 		{
@@ -150,7 +150,7 @@ if ($action == 'addtime' && $user->rights->projet->creer)
     $timetoadd=$_POST['task'];
 	if (empty($timetoadd))
 	{
-	    setEventMessage($langs->trans("ErrorTimeSpentIsEmpty"), 'errors');
+	    setEventMessages($langs->trans("ErrorTimeSpentIsEmpty"), null, 'errors');
     }
 	else
 	{
@@ -189,7 +189,7 @@ if ($action == 'addtime' && $user->rights->projet->creer)
 
 	   	if (! $error)
 	   	{
-	    	setEventMessage($langs->trans("RecordSaved"));
+	    	setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 
 	   	    // Redirect to avoid submit twice on back
 	       	header('Location: '.$_SERVER["PHP_SELF"].($projectid?'?id='.$projectid:'?').($mode?'&mode='.$mode:''));
diff --git a/htdocs/projet/admin/project.php b/htdocs/projet/admin/project.php
index 400560d00403ec768691c11a5f7d226387df111f..6c99461b353f9a35c084f0c87474c33f41ff9a8d 100644
--- a/htdocs/projet/admin/project.php
+++ b/htdocs/projet/admin/project.php
@@ -71,11 +71,11 @@ else if ($action == 'updateMask')
 
 	if (! $error)
 	{
-		setEventMessage($langs->trans("SetupSaved"));
+		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
 	}
 	else
 	{
-		setEventMessage($langs->trans("Error"), 'errors');
+		setEventMessages($langs->trans("Error"), null, 'errors');
 	}
 }
 
@@ -90,11 +90,11 @@ if ($action == 'updateMaskTask')
 
 	if (! $error)
 	{
-		setEventMessage($langs->trans("SetupSaved"));
+		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
 	}
 	else
 	{
-		setEventMessage($langs->trans("Error"), 'errors');
+		setEventMessages($langs->trans("Error"), null, 'errors');
 	}
 }
 
@@ -132,13 +132,13 @@ else if ($action == 'specimen')
 		}
 		else
 		{
-			setEventMessage($obj->error, 'errors');
+			setEventMessages($obj->error, $obj->errors, 'errors');
 			dol_syslog($obj->error, LOG_ERR);
 		}
 	}
 	else
 	{
-		setEventMessage($langs->trans("ErrorModuleNotFound"), 'errors');
+		setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
 		dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
 	}
 }
@@ -177,13 +177,13 @@ else if ($action == 'specimentask')
 		}
 		else
 		{
-			setEventMessage($obj->error, 'errors');
+			setEventMessages($obj->error, $obj->errors, 'errors');
 			dol_syslog($obj->error, LOG_ERR);
 		}
 	}
 	else
 	{
-		setEventMessage($langs->trans("ErrorModuleNotFound"), 'errors');
+		setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
 		dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
 	}
 }
@@ -208,12 +208,12 @@ if ($action == 'setModuleOptions')
 	if (! $error)
 	{
 		$db->commit();
-		setEventMessage($langs->trans("SetupSaved"));
+		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
 	}
 	else
 	{
 		$db->rollback();
-        setEventMessage($langs->trans("Error"),'errors');
+        setEventMessages($langs->trans("Error"), null, 'errors');
 	}
 }
 
diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php
index 463cda3953c51600ef9b73cb0fad1f9eca312efe..6a94c4dce1778b00544c66a5d29816ee0e139c49 100644
--- a/htdocs/projet/card.php
+++ b/htdocs/projet/card.php
@@ -101,7 +101,7 @@ if (empty($reshook))
 		    else
 		    {
 		        dol_syslog($object->error,LOG_DEBUG);
-			    setEventMessage($langs->trans("CantRemoveProject"), 'errors');
+			    setEventMessages($langs->trans("CantRemoveProject"), null, 'errors');
 		    }
 		}
 		if ($backtopage)
@@ -158,14 +158,14 @@ if (empty($reshook))
 	            if ($result < 0)
 	            {
 	                $langs->load("errors");
-		            setEventMessage($langs->trans($object->error), 'errors');
+		            setEventMessages($langs->trans($object->error), null,s 'errors');
 	                $error++;
 	            }
 	        }
 	        else
 	        {
 	            $langs->load("errors");
-		        setEventMessage($langs->trans($object->error), 'errors');
+		        setEventMessage($langs->trans($object->error), null, 'errors');
 	            $error++;
 	        }
 
@@ -241,7 +241,7 @@ if (empty($reshook))
 		if ($object->opp_amount && ($object->opp_status <= 0))
 	    {
 	       	$error++;
-	    	setEventMessage($langs->trans("ErrorOppStatusRequiredIfAmount"),'errors');
+	    	setEventMessages($langs->trans("ErrorOppStatusRequiredIfAmount"), null, 'errors');
 	    }
 	    
 	    if (! $error)
@@ -262,7 +262,7 @@ if (empty($reshook))
 	    		if ($result < 0)
 	    		{
 	    			$error++;
-				    setEventMessage($langs->trans("ErrorShiftTaskDate").':'.$object->error, 'errors');
+				    setEventMessages($langs->trans("ErrorShiftTaskDate").':'.$object->error, $langs->trans("ErrorShiftTaskDate").':'.$object->errors, 'errors');
 	    		}
 	    	}
 	    }
@@ -313,8 +313,8 @@ if (empty($reshook))
 	        $urlfile=GETPOST('urlfile','alpha');
 	        $file =	$upload_dir	. '/' .	$filetodelete;
 	        $ret=dol_delete_file($file);
-	        if ($ret) setEventMessage($langs->trans("FileWasRemoved", $urlfile));
-	        else setEventMessage($langs->trans("ErrorFailToDeleteFile", $urlfile), 'errors');
+	        if ($ret) setEventMessages($langs->trans("FileWasRemoved", $urlfile), null, 'mesgs');
+	        else setEventMessages($langs->trans("ErrorFailToDeleteFile", $urlfile), null, 'errors');
 	    }
 	}
 
@@ -352,7 +352,7 @@ if (empty($reshook))
 	    $result=$object->delete($user);
 	    if ($result > 0)
 	    {
-	        setEventMessage($langs->trans("RecordDeleted"), 'info');
+	        setEventMessagess($langs->trans("RecordDeleted"), null, 'mesgs');
 	    	header("Location: index.php");
 	        exit;
 	    }
diff --git a/htdocs/projet/contact.php b/htdocs/projet/contact.php
index f2d44e74dca34e216c5a95408177ebe9d8fa30fc..ebfad425cf8de395ce7750e49a382973d0fff2a2 100644
--- a/htdocs/projet/contact.php
+++ b/htdocs/projet/contact.php
@@ -76,11 +76,11 @@ if ($action == 'addcontact' && $user->rights->projet->creer)
 		if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 		{
 			$langs->load("errors");
-			setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors');
+			setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
 		}
 		else
 		{
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 }
diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php
index ff3e3c322181f3d7d96b50804ab5140eb35499d9..3839a9b0b06964675280b5a7e8d097aa51d22c16 100644
--- a/htdocs/projet/element.php
+++ b/htdocs/projet/element.php
@@ -293,17 +293,21 @@ if ($action=="addelement")
 	$tablename = GETPOST("tablename");
 	$elementselectid = GETPOST("elementselect");
 	$result=$object->update_element($tablename, $elementselectid);
-	if ($result<0) {
-		setEventMessage($object->error,'errors');
+	if ($result<0) 
+	{
+		setEventMessages($object->error, $object->errors, 'errors');
 	}
-}elseif ($action == "unlink") {
+}
+elseif ($action == "unlink") 
+{
 
 	$tablename = GETPOST("tablename");
 	$elementselectid = GETPOST("elementselect");
 
 	$result = $object->remove_element($tablename, $elementselectid);
-	if ($result < 0) {
-		setEventMessage($object->error, 'errors');
+	if ($result < 0) 
+	{
+		setEventMessages($object->error, $object->errors, 'errors');
 	}
 }
 
diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php
index 787bc8e120a69e54fb8c2ce7983fd71fe6c684b6..0faf21c1cc23e515753b289b33ff87430370d189 100644
--- a/htdocs/projet/tasks/contact.php
+++ b/htdocs/projet/tasks/contact.php
@@ -94,11 +94,11 @@ if ($action == 'addcontact' && $user->rights->projet->creer)
 		if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 		{
 			$langs->load("errors");
-			setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors');
+			setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
 		}
 		else
 		{
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 }
diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php
index 32ede58a53465d5855e9858bd36aea5af46c545a..3804715cb7c221b8aee133ebbabc082504194dc2 100644
--- a/htdocs/projet/tasks/task.php
+++ b/htdocs/projet/tasks/task.php
@@ -180,8 +180,8 @@ if ($action == 'remove_file' && $user->rights->projet->creer)
 		$file =	$upload_dir	. '/' .	GETPOST('file');
 
 		$ret=dol_delete_file($file);
-		if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-		else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+		if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+		else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 	}
 }
 
diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php
index 51dafba2a6d76f9bb0867f95b0d3a2f52daf7379..ac0adf33c772cdf6838c94798f71a9f2368a28e9 100644
--- a/htdocs/projet/tasks/time.php
+++ b/htdocs/projet/tasks/time.php
@@ -61,13 +61,13 @@ if ($action == 'addtimespent' && $user->rights->projet->creer)
 	$timespent_durationmin = GETPOST('timespent_durationmin','int');
 	if (empty($timespent_durationhour) && empty($timespent_durationmin))
 	{
-		setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Duration")),'errors');
+		setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Duration")), null, 'errors');
 		$error++;
 	}
 	if (empty($_POST["userid"]))
 	{
 		$langs->load("errors");
-		setEventMessage($langs->trans('ErrorUserNotAssignedToTask'),'errors');
+		setEventMessages($langs->trans('ErrorUserNotAssignedToTask'), null, 'errors');
 		$error++;
 	}
 
@@ -78,7 +78,7 @@ if ($action == 'addtimespent' && $user->rights->projet->creer)
 
 		if (empty($object->projet->statut))
 		{
-			setEventMessage($langs->trans("ProjectMustBeValidatedFirst"),'errors');
+			setEventMessages($langs->trans("ProjectMustBeValidatedFirst"), null, 'errors');
 			$error++;
 		}
 		else
@@ -100,11 +100,11 @@ if ($action == 'addtimespent' && $user->rights->projet->creer)
 			$result=$object->addTimeSpent($user);
 			if ($result >= 0)
 			{
-				setEventMessage($langs->trans("RecordSaved"));
+				setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 			}
 			else
 			{
-				setEventMessage($langs->trans($object->error),'errors');
+				setEventMessages($langs->trans($object->error), null, 'errors');
 				$error++;
 			}
 		}
@@ -121,7 +121,7 @@ if ($action == 'updateline' && ! $_POST["cancel"] && $user->rights->projet->cree
 
 	if (empty($_POST["new_durationhour"]) && empty($_POST["new_durationmin"]))
 	{
-		setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Duration")),'errors');
+		setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Duration")), null, 'errors');
 		$error++;
 	}
 
@@ -148,11 +148,11 @@ if ($action == 'updateline' && ! $_POST["cancel"] && $user->rights->projet->cree
 		$result=$object->updateTimeSpent($user);
 		if ($result >= 0)
 		{
-			setEventMessage($langs->trans("RecordSaved"));
+			setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 		}
 		else
 		{
-			setEventMessage($langs->trans($object->error),'errors');
+			setEventMessages($langs->trans($object->error), null, 'errors');
 			$error++;
 		}
 	}
@@ -170,7 +170,7 @@ if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->projet->c
 	if ($result < 0)
 	{
 		$langs->load("errors");
-		setEventMessage($langs->trans($object->error),'errors');
+		setEventMessages($langs->trans($object->error), null, 'errors');
 		$error++;
 		$action='';
 	}