diff --git a/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java b/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java
index e227cc4945bbe0dabdaa8e5b0b33cc1bf2678066..a74ea5865558c587e4e681280e9d110835edb893 100644
--- a/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java
+++ b/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java
@@ -69,8 +69,8 @@ import java.util.LinkedHashMap;
  */
 public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, Runnable  {
 
-    private static int MAX_X = 800;
-    private static int MAX_Y = 200;
+    private static int MAX_X = 1600;
+    private static int MAX_Y = 400;
     private static long stamp = 0;
 
     private int maxX = MAX_X;
@@ -78,9 +78,9 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener,
     private final static int limit = 10;
 
     // Drawing parameters
-    private final static int minSpaceBetweenLifeLines = 5;
-    private final static int verticalSpaceUnderBlocks = 15;
-    private int spaceBetweenLifeLines = 150;
+    private final static int minSpaceBetweenLifeLines = 50;
+    private final static int verticalSpaceUnderBlocks = 150;
+    private int spaceBetweenLifeLines = 300;
     private boolean spaceBetweenLifeLinesComputed = false;
     private int spaceAtEnd = 50;
     private int spaceAtTop = 50;
@@ -105,6 +105,8 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener,
     private Vector<Point> points;
     private Vector<GenericTransaction> transactionsOfPoints;
     private Hashtable<String, Point> asyncMsgs;
+    private Hashtable<String, Long> asyncStartTime;
+    private boolean checkMessID;
 
     // List of entities ... List is discovered progressively
     // Or the list is described in the trace (header information)
@@ -135,7 +137,8 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener,
         points = new Vector<>();
 
         asyncMsgs = new Hashtable<>();
-
+        asyncStartTime = new Hashtable<>();
+        checkMessID = true;
         mode = NO_MODE;
 
         setBackground(Color.WHITE);
@@ -326,6 +329,22 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener,
             clockValueMouse = clockValue;
             g.drawString("@" + clockValue/clockDiviser, 10, currentY+g.getFontMetrics().getHeight()/2);
         }
+        if(checkMessID) {
+            for (int i = Math.max(transactions.size() - drawnTransactions, 0); i < transactions.size(); i++) {
+                gt = transactions.get(i);
+                if (gt.type == GenericTransaction.SEND_ASYNCHRO) {
+                    asyncStartTime.put(gt.messageID, gt.startingTime);
+                }
+            }
+            for (int i = Math.max(transactions.size() - drawnTransactions, 0); i < transactions.size(); i++) {
+                gt = transactions.get(i);
+                if (gt.type == GenericTransaction.RECEIVE_ASYNCHRO) {
+                    if (asyncStartTime.get(gt.messageID) == null || gt.startingTime < asyncStartTime.get(gt.messageID))
+                        gt.messageID = String.valueOf(new Integer(gt.messageID) - 1);
+                }
+            }
+        }
+        checkMessID = false;
 
         for(int i=Math.max(transactions.size()-drawnTransactions, 0); i<transactions.size(); i++) {
             gt = transactions.get(i);