diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php
index c941dfc1ff8eaf51793f4cdabaecab1aea1cb04b..e3db32d59b12c6329b024a3b93be7f3adc74566f 100644
--- a/htdocs/commande/class/commande.class.php
+++ b/htdocs/commande/class/commande.class.php
@@ -2846,7 +2846,7 @@ class Commande extends CommonOrder
 
         $clause = " WHERE";
 
-        $sql = "SELECT c.rowid, c.date_creation as datec, c.date_livraison as delivery_date, c.fk_statut";
+        $sql = "SELECT c.rowid, c.date_creation as datec, c.date_commande, c.date_livraison as delivery_date, c.fk_statut";
         $sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
         if (!$user->rights->societe->client->voir && !$user->societe_id)
         {
@@ -2862,21 +2862,22 @@ class Commande extends CommonOrder
         $resql=$this->db->query($sql);
         if ($resql)
         {
-	        $now=dol_now();
-
 	        $response = new WorkboardResponse();
 	        $response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
 	        $response->label=$langs->trans("OrdersToProcess");
 	        $response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3';
 	        $response->img=img_object($langs->trans("Orders"),"order");
 
+            $generic_commande = new Commande($this->db);
+
             while ($obj=$this->db->fetch_object($resql))
             {
-	            $response->nbtodo++;
+                $response->nbtodo++;
 
-				$date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date;
+                $generic_commande->statut = $obj->fk_statut;
+                $generic_commande->date_livraison = $obj->delivery_date;
 
-	            if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->client->warning_delay)) {
+                if ($generic_commande->hasDelay()) {
 		            $response->nbtodolate++;
 	            }
             }
@@ -3341,6 +3342,24 @@ class Commande extends CommonOrder
 
 		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
 	}
+
+    /**
+     * Is the customer order delayed?
+     *
+     * @return bool
+     */
+    public function hasDelay()
+    {
+        global $conf;
+
+        if (!($this->statut > Commande::STATUS_DRAFT) && ($this->statut < Commande::STATUS_CLOSED)) {
+            return false;
+        }
+
+        $now = dol_now();
+
+        return max($this->date_commande, $this->date_livraison) < ($now - $conf->commande->client->warning_delay);
+    }
 }
 
 
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index 6af44d4a7d6c9cc32215aca0250277fa91b5bf7a..1c2f34c09310158dfb8c6d105e5efb67fc67a563 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -357,9 +357,11 @@ if ($resql)
         $var=!$var;
         print '<tr '.$bc[$var].'>';
         print '<td class="nowrap">';
-
         $generic_commande->id=$objp->rowid;
         $generic_commande->ref=$objp->ref;
+	    $generic_commande->statut = $objp->fk_statut;
+	    $generic_commande->date_commande = $db->jdate($objp->date_commande);
+	    $generic_commande->date_livraison = $db->jdate($objp->date_delivery);
         $generic_commande->ref_client = $objp->ref_client;
         $generic_commande->total_ht = $objp->total_ht;
         $generic_commande->total_tva = $objp->total_tva;
@@ -444,8 +446,9 @@ if ($resql)
 
         // warning late icon
 		print '<td style="min-width: 20px" class="nobordernopadding nowrap">';
-		if (($objp->fk_statut > 0) && ($objp->fk_statut < 3) && max($db->jdate($objp->date_commande),$db->jdate($objp->date_delivery)) < ($now - $conf->commande->client->warning_delay))
-			print img_picto($langs->trans("Late"),"warning");
+		if ($generic_commande->hasDelay()) {
+			print img_picto($langs->trans("Late"), "warning");
+		}
 		if(!empty($objp->note_private))
 		{
 			print ' <span class="note">';
diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php
index e75a9dda73b679c4bbfc53062973682163c98b13..6003a41cfef34597e91ccd956739a088530e438c 100644
--- a/htdocs/commande/orderstoinvoice.php
+++ b/htdocs/commande/orderstoinvoice.php
@@ -633,6 +633,9 @@ if (($action != 'create' && $action != 'add') && !$error)
 
 			$generic_commande->id=$objp->rowid;
 			$generic_commande->ref=$objp->ref;
+			$generic_commande->statut = $objp->fk_statut;
+			$generic_commande->date_commande = $db->jdate($objp->date_commande);
+			$generic_commande->date_livraison = $db->jdate($objp->date_livraison);
 
 			print '<table class="nobordernopadding"><tr class="nocellnopadd">';
 			print '<td class="nobordernopadding nowrap">';
@@ -640,7 +643,9 @@ if (($action != 'create' && $action != 'add') && !$error)
 			print '</td>';
 
 			print '<td width="20" class="nobordernopadding nowrap">';
-			if (($objp->fk_statut > 0) && ($objp->fk_statut < 3) && $db->jdate($objp->date_valid) < ($now - $conf->commande->client->warning_delay)) print img_picto($langs->trans("Late"),"warning");
+			if ($generic_commande->hasDelay()) {
+				print img_picto($langs->trans("Late"),"warning");
+			}
 			print '</td>';
 
 			print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';