diff --git a/regression_test/any_from/any_from.ttcn b/regression_test/any_from/any_from.ttcn
index 7ff74fc138d9208763c38074b6a261e73c8fbb50..f1b8794b80c71668d5700eed1e2370b4e74ed216 100644
--- a/regression_test/any_from/any_from.ttcn
+++ b/regression_test/any_from/any_from.ttcn
@@ -977,10 +977,10 @@ testcase tc_timer_timeout() runs on CT {
   timer master;
   timer t[3];
   var integer idx;
-  t[0].start(0.4);
-  t[1].start(0.6);
-  t[2].start(0.2);
-  master.start(1.0); // just for safety
+  t[0].start(2.0);
+  t[1].start(3.0);
+  t[2].start(1.0);
+  master.start(4.0); // just for safety
   alt {
     [] any from t.timeout -> @index value idx {
       if (idx != 2) {
@@ -996,13 +996,16 @@ testcase tc_timer_timeout() runs on CT {
   }
 }
 
+// FIXME: The timers are not the best solution because in some cases the scheduler
+//        makes unexpected results.
+
 // tests for 'any from <timer array>.running'
 testcase tc_timer_running() runs on CT {
   timer t[3];
   var integer idx;
   t[0].start(0.05);
-  t[1].start(0.3);
-  t[2].start(0.3);
+  t[1].start(0.5);
+  t[2].start(0.5);
   t[0].timeout;
   if (any from t.running -> @index value idx) {
     if (idx != 1) {
@@ -1035,12 +1038,12 @@ testcase tc_component_done() runs on CT {
   cta[0] := CT.create;
   cta[1] := CT.create;
   cta[2] := CT.create;
-  cta[0].start(f_behavior_done(0.4));
-  cta[1].start(f_behavior_done(0.4));
-  cta[2].start(f_behavior_done(0.2));
+  cta[0].start(f_behavior_done(2.0));
+  cta[1].start(f_behavior_done(2.0));
+  cta[2].start(f_behavior_done(1.0));
   var integer idx;
   timer t;
-  t.start(1.0);
+  t.start(3.0);
   alt {
     [] any from cta.done(IntDone: ?) -> @index value idx {
       if (idx != 2) {
@@ -1076,10 +1079,10 @@ testcase tc_component_done() runs on CT {
   cta2[0] := CT.create;
   cta2[1] := CT.create;
   cta2[2] := CT.create;
-  cta2[0].start(f_behavior_done(0.4));
-  cta2[1].start(f_behavior_done(0.2));
-  cta2[2].start(f_behavior_done(0.4));
-  t.start(1.0);
+  cta2[0].start(f_behavior_done(2.0));
+  cta2[1].start(f_behavior_done(1.0));
+  cta2[2].start(f_behavior_done(2.0));
+  t.start(3.0);
   alt {
     [] any from f_comp_array(cta2).done(IntDone: ?) -> @index value idx2 {
       if (idx2 != 1) {
@@ -1114,12 +1117,12 @@ testcase tc_component_done() runs on CT {
   cta3[0] := CT.create;
   cta3[1] := CT.create;
   cta3[2] := CT.create;
-  cta3[0].start(f_behavior_done(0.2));
-  cta3[1].start(f_behavior_done(0.4));
-  cta3[2].start(f_behavior_done(0.4));
+  cta3[0].start(f_behavior_done(1.0));
+  cta3[1].start(f_behavior_done(2.0));
+  cta3[2].start(f_behavior_done(2.0));
   var F_type f_ptr := refers(f_comp_array);
   var integer idx3;
-  t.start(1.0);
+  t.start(3.0);
   alt {
     [] any from f_ptr.apply(cta3).done(IntDone: ?) -> @index value idx3 {
       if (idx3 != 0) {
@@ -1156,12 +1159,12 @@ testcase tc_component_killed() runs on CT {
   cta[0] := CT.create;
   cta[1] := CT.create;
   cta[2] := CT.create;
-  cta[0].start(f_behavior_done(0.4));
-  cta[1].start(f_behavior_done(0.4));
-  cta[2].start(f_behavior_done(0.2));
+  cta[0].start(f_behavior_done(2.0));
+  cta[1].start(f_behavior_done(2.0));
+  cta[2].start(f_behavior_done(1.0));
   var integer idx;
   timer t;
-  t.start(1.0);
+  t.start(3.0);
   alt {
     [] any from cta.killed -> @index value idx {
       if (idx != 2) {
@@ -1197,10 +1200,10 @@ testcase tc_component_killed() runs on CT {
   cta2[0] := CT.create;
   cta2[1] := CT.create;
   cta2[2] := CT.create;
-  cta2[0].start(f_behavior_done(0.4));
-  cta2[1].start(f_behavior_done(0.2));
-  cta2[2].start(f_behavior_done(0.4));
-  t.start(1.0);
+  cta2[0].start(f_behavior_done(2.0));
+  cta2[1].start(f_behavior_done(1.0));
+  cta2[2].start(f_behavior_done(2.0));
+  t.start(3.0);
   alt {
     [] any from f_comp_array(cta2).killed -> @index value idx2 {
       if (idx2 != 1) {
@@ -1235,12 +1238,12 @@ testcase tc_component_killed() runs on CT {
   cta3[0] := CT.create;
   cta3[1] := CT.create;
   cta3[2] := CT.create;
-  cta3[0].start(f_behavior_done(0.2));
-  cta3[1].start(f_behavior_done(0.4));
-  cta3[2].start(f_behavior_done(0.4));
+  cta3[0].start(f_behavior_done(1.0));
+  cta3[1].start(f_behavior_done(2.0));
+  cta3[2].start(f_behavior_done(2.0));
   var F_type f_ptr := refers(f_comp_array);
   var integer idx3;
-  t.start(1.0);
+  t.start(3.0);
   alt {
     [] any from f_ptr.apply(cta3).killed -> @index value idx3 {
       if (idx3 != 0) {
@@ -1278,7 +1281,7 @@ testcase tc_component_running() runs on CT {
   cta[2] := CT.create;
   cta[0].start(f_behavior_done(0.05));
   cta[1].start(f_behavior_done(0.05));
-  cta[2].start(f_behavior_done(0.3));
+  cta[2].start(f_behavior_done(0.5));
   cta[0].done;
   cta[1].done;
   var integer idx;
@@ -1306,7 +1309,7 @@ testcase tc_component_running() runs on CT {
   cta2[1] := CT.create;
   cta2[2] := CT.create;
   cta2[0].start(f_behavior_done(0.05));
-  cta2[1].start(f_behavior_done(0.3));
+  cta2[1].start(f_behavior_done(0.5));
   cta2[2].start(f_behavior_done(0.05));
   cta2[0].done;
   cta2[2].done;
@@ -1334,7 +1337,7 @@ testcase tc_component_running() runs on CT {
   cta3[0] := CT.create;
   cta3[1] := CT.create;
   cta3[2] := CT.create;
-  cta3[0].start(f_behavior_done(0.3));
+  cta3[0].start(f_behavior_done(0.5));
   cta3[1].start(f_behavior_done(0.05));
   cta3[2].start(f_behavior_done(0.05));
   cta3[1].done;
@@ -1369,7 +1372,7 @@ testcase tc_component_alive() runs on CT {
   cta[2] := CT.create;
   cta[0].start(f_behavior_done(0.05));
   cta[1].start(f_behavior_done(0.05));
-  cta[2].start(f_behavior_done(0.3));
+  cta[2].start(f_behavior_done(0.5));
   cta[0].killed;
   cta[1].killed;
   var integer idx;
@@ -1397,7 +1400,7 @@ testcase tc_component_alive() runs on CT {
   cta2[1] := CT.create;
   cta2[2] := CT.create;
   cta2[0].start(f_behavior_done(0.05));
-  cta2[1].start(f_behavior_done(0.3));
+  cta2[1].start(f_behavior_done(0.5));
   cta2[2].start(f_behavior_done(0.05));
   cta2[0].killed;
   cta2[2].killed;
@@ -1425,7 +1428,7 @@ testcase tc_component_alive() runs on CT {
   cta3[0] := CT.create;
   cta3[1] := CT.create;
   cta3[2] := CT.create;
-  cta3[0].start(f_behavior_done(0.3));
+  cta3[0].start(f_behavior_done(0.5));
   cta3[1].start(f_behavior_done(0.05));
   cta3[2].start(f_behavior_done(0.05));
   cta3[1].killed;