diff --git a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
index fb8e9550ea7f690b5f41e8f1752e23302b152a3b..9cb1d41ac18bfb873acedf41d7394868c24a87b0 100644
--- a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
+++ b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
@@ -3962,6 +3962,10 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
         sendCommand("get-variable-of-task " + _idTask + " " + _idVariable);
     }
 
+    public void validateTimeDuration() {
+        updateTimelineTrace();
+    }
+
     public Vector<SimulationTransaction> getListOfRecentTransactions() {
         return trans;
     }
diff --git a/src/main/java/ui/interactivesimulation/JFrameTMLSimulationPanelTimeline.java b/src/main/java/ui/interactivesimulation/JFrameTMLSimulationPanelTimeline.java
index 9eee27212bfdff3f927f7fd48104a4af6891df23..f3b8cd3974d03e33b9ca2865c8de68fceb820445 100644
--- a/src/main/java/ui/interactivesimulation/JFrameTMLSimulationPanelTimeline.java
+++ b/src/main/java/ui/interactivesimulation/JFrameTMLSimulationPanelTimeline.java
@@ -127,13 +127,27 @@ public class JFrameTMLSimulationPanelTimeline extends JFrame implements ActionLi
         endTime.setToolTipText("End Time");
         endTime.setEnabled(false);
         southPanel.add(endTime);
+        JButton validate = new JButton("Validate");
+        validate.setEnabled(false);
+        validate.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent actionEvent) {
+                if (checkBoxSelectedTimePeriod.isSelected() && isValidDuration()) {
+                    jfis.validateTimeDuration();
+                }
+            }
+        });
+        southPanel.add(validate);
+
         checkBoxSelectedTimePeriod.addItemListener(e -> {
             if (e.getStateChange() == ItemEvent.SELECTED) {
                 startTime.setEnabled(true);
                 endTime.setEnabled(true);
+                validate.setEnabled(true);
             } else {
                 startTime.setEnabled(false);
                 endTime.setEnabled(false);
+                validate.setEnabled(false);
             }
         });
 
diff --git a/ttool/src/test/java/tmltranslator/MemoryLeakTest.java b/ttool/src/test/java/tmltranslator/MemoryLeakTest.java
index 67ce0b24f621ad662c67bee7798034951e5b1002..369c167fc04ad68090ccd3dd17c9b8fd65f5a99a 100644
--- a/ttool/src/test/java/tmltranslator/MemoryLeakTest.java
+++ b/ttool/src/test/java/tmltranslator/MemoryLeakTest.java
@@ -35,10 +35,10 @@ public class MemoryLeakTest extends AbstractTest {
     final String DIR_GEN = "test_diplo_simulator/";
     final String [] MODELS_MEMORY_LEAK = {"fpga_reconfig5", "fpga_reconfig6"};
     private String SIM_DIR;
-    final int [] NB_OF_ML_STATES = {24, 24};
-    final int [] NB_OF_ML_TRANSTIONS = {23, 23};
-    final int [] MIN_ML_CYCLES = {72, 73};
-    final int [] MAX_ML_CYCLES = {72, 73};
+    final int [] NB_OF_ML_STATES = {20, 20};
+    final int [] NB_OF_ML_TRANSTIONS = {19, 19};
+    final int [] MIN_ML_CYCLES = {75, 76};
+    final int [] MAX_ML_CYCLES = {75, 76};
     static String CPP_DIR = "../../../../simulators/c++2/";
     static String valgrindVersionCmd = "valgrind --version";
     static String valgrindExecCmd = "valgrind --leak-check=full --log-file=";