diff --git a/src/lv6version.ml b/src/lv6version.ml
index 913e546bafea4daa6f63c06087232aca9477c236..331383e1f7f8f5dd48e40fca4af80f56daf6a723 100644
--- a/src/lv6version.ml
+++ b/src/lv6version.ml
@@ -1,7 +1,7 @@
 (** Automatically generated from Makefile *) 
 let tool = "lus2lic"
 let branch = "(no"
-let commit = "533"
-let sha_1 = "987b66ecac7d8ed1b0c8c8c42ab67be1ef9316af"
+let commit = "534"
+let sha_1 = "f37347fe7fa7f49efe1b0ae7a462d649437f4872"
 let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")")
 let maintainer = "jahier@imag.fr"
diff --git a/src/sortActions.ml b/src/sortActions.ml
index bf4f0c24a194830b664daf7b7d715e1911e4874c..9db941b59596799219e97d7b7f403618e821b175 100644
--- a/src/sortActions.ml
+++ b/src/sortActions.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 06/10/2014 (at 10:57) by Erwan Jahier> *)
+(** Time-stamp: <modified the 07/10/2014 (at 16:21) by Erwan Jahier> *)
 
 (** topological sort of actions (that may optimize test openning) *)
 
@@ -61,12 +61,12 @@ let (topo_sort : ActionsDeps.action list -> ActionsDeps.t -> ActionsDeps.action
 	       if (try MapAction.find x visited with Not_found -> assert false)
 	       then 
 	         f acc tail stbl visited 
-          else
-            try 
+          else 
               let x_succ = ActionsDeps.find_deps stbl x in
-	           f acc (x_succ @ l) (ActionsDeps.remove_dep stbl x) visited
-	         with Not_found -> (* x has no (more) dep *)
-	           f (x::acc) tail stbl (MapAction.add x true visited)
+              if x_succ = [] then
+	             f (x::acc) tail stbl (MapAction.add x true visited)
+              else
+	             f acc (x_succ @ l) (ActionsDeps.remove_dep stbl x) visited
     in
     check_there_is_no_cycle actions stbl;
     f [] actions stbl visited_init
@@ -92,16 +92,59 @@ let rec (gao_of_action: action -> Soc.gao) =
     in
     unpack_clock ck
 
-let f actions stbl lxm =
-  let actions = 
-    try topo_sort actions stbl
-    with DependencyCycle(x,l) ->
-      let l = List.map ActionsDeps.string_of_action_simple l in
-      let msg = "A combinational cycle been detected "^
-        (Lxm.details lxm)^" on \n  "^(ActionsDeps.string_of_action_simple x)^
-        "\n  "^(String.concat "\n  " l) ^ "\n\nHint: try to use --expand-nodes.\n"
-      in
-      raise (Lv6errors.Global_error msg)
-  in
-  let gaol = List.map gao_of_action actions in
-  gaol
+(*********************************************************************************)
+(* [my_assoc x l] returns the elt associated to x in l plus l without (x,elt) *)
+let my_assoc x l = 
+  let rec aux acc = function
+  | [] -> None
+  | (a,b)::l -> if compare a x = 0 then Some(b,List.rev_append acc l) else aux ((a,b)::acc) l
+  in 
+  aux [] l
+
+(* Simple optimisation : when 2 consecutive gao holds on the same clock, we
+   try to factorize them out.
+*)
+let (optimize_test_openning: Soc.gao list -> ActionsDeps.t -> Soc.gao list) =
+  fun gaol deps ->
+    let rec aux acc gaol = match gaol with 
+      | []  -> List.rev acc
+      | [a] -> List.rev (a::acc)
+      | Soc.Call(o,op,i)::tail -> aux (Soc.Call(o,op,i)::acc) tail 
+      | a1::Soc.Call(o,op,i)::tail ->  aux (Soc.Call(o,op,i)::a1::acc) tail 
+      | Case(v1,l1)::Case(v2,l2)::tail -> 
+        if v1 <> v2 then aux (Soc.Case(v1,l1)::acc) (Case(v2,l2)::tail) else
+          let l = merge_gaol l1 l2 [] in
+          aux acc (Soc.Case(v1,l)::tail) 
+            
+    and (merge_gaol : (string * Soc.gao list) list -> (string * Soc.gao list) list -> 
+         (string * Soc.gao list) list -> (string * Soc.gao list) list) =
+      fun l1 l2 acc -> 
+        match l1 with
+          | [] -> if l2 = [] then List.rev acc else List.rev_append acc l2
+          | (x1,gaol1)::l1 -> 
+            (match my_assoc x1 l2 with
+              | None -> merge_gaol l1 l2 ((x1,gaol1)::acc)
+              | Some(gaol2,l2) -> 
+                let gaol = aux [] (gaol1@gaol2) in
+                merge_gaol l1 l2 ((x1,gaol)::acc)
+            )
+    in
+    aux [] gaol
+
+(*********************************************************************************)
+
+let (f : action list -> ActionsDeps.t -> Lxm.t -> Soc.gao list) = 
+  fun actions deps lxm -> 
+    let actions = 
+      try topo_sort actions deps
+      with DependencyCycle(x,l) ->
+        let l = List.map ActionsDeps.string_of_action_simple l in
+        let msg = "A combinational cycle been detected "^
+          (Lxm.details lxm)^" on \n  "^(ActionsDeps.string_of_action_simple x)^
+          "\n  "^(String.concat "\n  " l) ^ "\n\nHint: try to use --expand-nodes.\n"
+        in
+        raise (Lv6errors.Global_error msg)
+    in
+    let gaol = List.map gao_of_action actions in
+     optimize_test_openning gaol deps 
+(*     gaol *)
diff --git a/test/Makefile b/test/Makefile
index d2d6d67bfa0d2e2a71f394f6374a882e7a7386d3..f81f86b24a4a2f091a874795c31adc2c1e6508ea 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -62,13 +62,13 @@ utest:
 # reftest isslower than qtest, but less sensible to the load of the machine (wrt time measurements)
 reftest: 
 	rm -f $(LOG)
-	cd $(testdir); make tmpdirs
+	$(TEST_MACHINE) "cd $(testdir); make tmpdirs"
 	time -o lus2lic.ref_time make $(LOG)
 	make lus2lic.time
 
 qtest: 
 	rm -f $(LOG)
-	cd $(testdir); make tmpdirs
+	$(TEST_MACHINE) "cd $(testdir); make tmpdirs"
 	time -o lus2lic.quick_time make -j 8 $(LOG)
 	cat lus2lic.quick_time
 	make lus2lic.time
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index cfb52425996db62d0c778771c2ac7a384f1e09f7..3824b0582185fb6bf15e0d3e9af7f4100e7a18e1 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,5 +1,5 @@
 ==> lus2lic0.sum <==
-Test Run By jahier on Mon Oct  6 11:09:45 
+Test Run By jahier on Tue Oct  7 16:22:36 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic0 tests ===
@@ -63,7 +63,7 @@ XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecte
 XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus
 
 ==> lus2lic1.sum <==
-Test Run By jahier on Mon Oct  6 11:09:46 
+Test Run By jahier on Tue Oct  7 16:22:37 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic1 tests ===
@@ -84,8 +84,7 @@ PASS: ./lus2lic  {-2c EDGE.lus -n EDGE}
 PASS: gcc -o EDGE.exec EDGE_EDGE.c EDGE_EDGE_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c EDGE.lus  {}
 PASS: ./lus2lic  {-2c ELMU.lus -n ELMU}
-PASS: gcc -o ELMU.exec ELMU_ELMU.c ELMU_ELMU_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ELMU.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o ELMU.exec ELMU_ELMU.c ELMU_ELMU_loop.c 
 PASS: ./lus2lic  {-2c FALLING_EDGE.lus -n FALLING_EDGE}
 PASS: gcc -o FALLING_EDGE.exec FALLING_EDGE_FALLING_EDGE.c FALLING_EDGE_FALLING_EDGE_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c FALLING_EDGE.lus  {}
@@ -93,11 +92,9 @@ PASS: ./lus2lic  {-2c FillFollowedByRed.lus -n FillFollowedByRed}
 PASS: gcc -o FillFollowedByRed.exec FillFollowedByRed_FillFollowedByRed.c FillFollowedByRed_FillFollowedByRed_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c FillFollowedByRed.lus  {}
 PASS: ./lus2lic  {-2c Gyroscope.lus -n Gyroscope}
-PASS: gcc -o Gyroscope.exec Gyroscope_Gyroscope.c Gyroscope_Gyroscope_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c Gyroscope.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o Gyroscope.exec Gyroscope_Gyroscope.c Gyroscope_Gyroscope_loop.c 
 PASS: ./lus2lic  {-2c Gyroscope2.lus -n Gyroscope2}
-PASS: gcc -o Gyroscope2.exec Gyroscope2_Gyroscope2.c Gyroscope2_Gyroscope2_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c Gyroscope2.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o Gyroscope2.exec Gyroscope2_Gyroscope2.c Gyroscope2_Gyroscope2_loop.c 
 PASS: ./lus2lic  {-2c Int.lus -n Int}
 PASS: ./lus2lic  {-2c aa.lus -n aa}
 PASS: gcc -o aa.exec aa_aa.c aa_aa_loop.c 
@@ -125,11 +122,9 @@ PASS: ./lus2lic  {-2c argos.lus -n argos}
 PASS: gcc -o argos.exec argos_argos.c argos_argos_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c argos.lus  {}
 PASS: ./lus2lic  {-2c array_concat.lus -n array_concat}
-PASS: gcc -o array_concat.exec array_concat_array_concat.c array_concat_array_concat_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c array_concat.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o array_concat.exec array_concat_array_concat.c array_concat_array_concat_loop.c 
 PASS: ./lus2lic  {-2c array_concat2.lus -n array_concat2}
-PASS: gcc -o array_concat2.exec array_concat2_array_concat2.c array_concat2_array_concat2_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c array_concat2.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o array_concat2.exec array_concat2_array_concat2.c array_concat2_array_concat2_loop.c 
 PASS: ./lus2lic  {-2c arrays.lus -n arrays}
 PASS: gcc -o arrays.exec arrays_arrays.c arrays_arrays_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c arrays.lus  {}
@@ -150,11 +145,9 @@ PASS: ./lus2lic  {-2c bred_lv4.lus -n bred_lv4}
 PASS: gcc -o bred_lv4.exec bred_lv4_bred_lv4.c bred_lv4_bred_lv4_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bred_lv4.lus  {}
 PASS: ./lus2lic  {-2c bug.lus -n bug}
-PASS: gcc -o bug.exec bug_bug.c bug_bug_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bug.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o bug.exec bug_bug.c bug_bug_loop.c 
 PASS: ./lus2lic  {-2c bug2.lus -n bug2}
-PASS: gcc -o bug2.exec bug2_bug2.c bug2_bug2_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c bug2.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o bug2.exec bug2_bug2.c bug2_bug2_loop.c 
 PASS: ./lus2lic  {-2c calculs_max.lus -n calculs_max}
 PASS: gcc -o calculs_max.exec calculs_max_calculs_max.c calculs_max_calculs_max_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c calculs_max.lus  {}
@@ -170,8 +163,7 @@ PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c call04.lus  {}
 PASS: ./lus2lic  {-2c call05.lus -n call05}
 PASS: ./lus2lic  {-2c call06.lus -n call06}
 PASS: ./lus2lic  {-2c call07.lus -n call07}
-PASS: gcc -o call07.exec call07_call07.c call07_call07_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c call07.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o call07.exec call07_call07.c call07_call07_loop.c 
 PASS: ./lus2lic  {-2c carV2.lus -n carV2}
 PASS: gcc -o carV2.exec carV2_carV2.c carV2_carV2_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c carV2.lus  {}
@@ -251,8 +243,7 @@ PASS: ./lus2lic  {-2c ex.lus -n ex}
 PASS: gcc -o ex.exec ex_ex.c ex_ex_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ex.lus  {}
 PASS: ./lus2lic  {-2c exclusion.lus -n exclusion}
-PASS: gcc -o exclusion.exec exclusion_exclusion.c exclusion_exclusion_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c exclusion.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o exclusion.exec exclusion_exclusion.c exclusion_exclusion_loop.c 
 PASS: ./lus2lic  {-2c filliter.lus -n filliter}
 PASS: gcc -o filliter.exec filliter_filliter.c filliter_filliter_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c filliter.lus  {}
@@ -268,8 +259,7 @@ PASS: gcc -o fresh_name.exec fresh_name_fresh_name.c fresh_name_fresh_name_loop.
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c fresh_name.lus  {}
 PASS: ./lus2lic  {-2c func_with_body.lus -n func_with_body}
 PASS: ./lus2lic  {-2c hanane.lus -n hanane}
-PASS: gcc -o hanane.exec hanane_hanane.c hanane_hanane_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c hanane.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o hanane.exec hanane_hanane.c hanane_hanane_loop.c 
 PASS: ./lus2lic  {-2c heater_control.lus -n heater_control}
 PASS: gcc -o heater_control.exec heater_control_heater_control.c heater_control_heater_control_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c heater_control.lus  {}
@@ -397,7 +387,7 @@ PASS: gcc -o multipar.exec multipar_multipar.c multipar_multipar_loop.c
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus  {}
 
 ==> lus2lic2.sum <==
-Test Run By jahier on Mon Oct  6 11:10:23 
+Test Run By jahier on Tue Oct  7 16:22:57 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic2 tests ===
@@ -488,20 +478,16 @@ PASS: ./lus2lic  {-2c noeudsIndependants.lus -n noeudsIndependants}
 PASS: gcc -o noeudsIndependants.exec noeudsIndependants_noeudsIndependants.c noeudsIndependants_noeudsIndependants_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c noeudsIndependants.lus  {}
 PASS: ./lus2lic  {-2c normal.lus -n normal}
-PASS: gcc -o normal.exec normal_normal.c normal_normal_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c normal.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o normal.exec normal_normal.c normal_normal_loop.c 
 PASS: ./lus2lic  {-2c notTwo.lus -n notTwo}
 PASS: gcc -o notTwo.exec notTwo_notTwo.c notTwo_notTwo_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c notTwo.lus  {}
 PASS: ./lus2lic  {-2c o2l_feux_compl.lus -n o2l_feux_compl}
-PASS: gcc -o o2l_feux_compl.exec o2l_feux_compl_o2l_feux_compl.c o2l_feux_compl_o2l_feux_compl_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c o2l_feux_compl.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o o2l_feux_compl.exec o2l_feux_compl_o2l_feux_compl.c o2l_feux_compl_o2l_feux_compl_loop.c 
 PASS: ./lus2lic  {-2c onlyroll.lus -n onlyroll}
-PASS: gcc -o onlyroll.exec onlyroll_onlyroll.c onlyroll_onlyroll_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c onlyroll.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o onlyroll.exec onlyroll_onlyroll.c onlyroll_onlyroll_loop.c 
 PASS: ./lus2lic  {-2c onlyroll2.lus -n onlyroll2}
-PASS: gcc -o onlyroll2.exec onlyroll2_onlyroll2.c onlyroll2_onlyroll2_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c onlyroll2.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o onlyroll2.exec onlyroll2_onlyroll2.c onlyroll2_onlyroll2_loop.c 
 PASS: ./lus2lic  {-2c over2.lus -n over2}
 PASS: gcc -o over2.exec over2_over2.c over2_over2_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c over2.lus  {}
@@ -529,8 +515,7 @@ PASS: ./lus2lic  {-2c param_node4.lus -n param_node4}
 PASS: gcc -o param_node4.exec param_node4_param_node4.c param_node4_param_node4_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c param_node4.lus  {}
 PASS: ./lus2lic  {-2c param_struct.lus -n param_struct}
-PASS: gcc -o param_struct.exec param_struct_param_struct.c param_struct_param_struct_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c param_struct.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o param_struct.exec param_struct_param_struct.c param_struct_param_struct_loop.c 
 PASS: ./lus2lic  {-2c pilote-1.0.lus -n pilote-1.0}
 PASS: ./lus2lic  {-2c pipeline.lus -n pipeline}
 PASS: gcc -o pipeline.exec pipeline_pipeline.c pipeline_pipeline_loop.c 
@@ -567,8 +552,7 @@ PASS: ./lus2lic  {-2c predefOp.lus -n predefOp}
 PASS: gcc -o predefOp.exec predefOp_predefOp.c predefOp_predefOp_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c predefOp.lus  {}
 PASS: ./lus2lic  {-2c produitBool.lus -n produitBool}
-PASS: gcc -o produitBool.exec produitBool_produitBool.c produitBool_produitBool_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c produitBool.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o produitBool.exec produitBool_produitBool.c produitBool_produitBool_loop.c 
 PASS: ./lus2lic  {-2c redIf.lus -n redIf}
 PASS: gcc -o redIf.exec redIf_redIf.c redIf_redIf_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c redIf.lus  {}
@@ -643,8 +627,7 @@ PASS: ./lus2lic  {-2c test_const.lus -n test_const}
 PASS: gcc -o test_const.exec test_const_test_const.c test_const_test_const_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_const.lus  {}
 PASS: ./lus2lic  {-2c test_diese.lus -n test_diese}
-PASS: gcc -o test_diese.exec test_diese_test_diese.c test_diese_test_diese_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_diese.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o test_diese.exec test_diese_test_diese.c test_diese_test_diese_loop.c 
 PASS: ./lus2lic  {-2c test_enum.lus -n test_enum}
 PASS: gcc -o test_enum.exec test_enum_test_enum.c test_enum_test_enum_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c test_enum.lus  {}
@@ -674,8 +657,7 @@ PASS: ./lus2lic  {-2c toolate.lus -n toolate}
 PASS: gcc -o toolate.exec toolate_toolate.c toolate_toolate_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c toolate.lus  {}
 PASS: ./lus2lic  {-2c toto.lus -n toto}
-PASS: gcc -o toto.exec toto_toto.c toto_toto_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c toto.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o toto.exec toto_toto.c toto_toto_loop.c 
 PASS: ./lus2lic  {-2c tri.lus -n tri}
 PASS: gcc -o tri.exec tri_tri.c tri_tri_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c tri.lus  {}
@@ -689,8 +671,7 @@ PASS: ./lus2lic  {-2c trivial2.lus -n trivial2}
 PASS: gcc -o trivial2.exec trivial2_trivial2.c trivial2_trivial2_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c trivial2.lus  {}
 PASS: ./lus2lic  {-2c trivial_array.lus -n trivial_array}
-PASS: gcc -o trivial_array.exec trivial_array_trivial_array.c trivial_array_trivial_array_loop.c 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c trivial_array.lus  {}
+FAIL: Check that the generated C code compiles  : gcc -o trivial_array.exec trivial_array_trivial_array.c trivial_array_trivial_array_loop.c 
 PASS: ./lus2lic  {-2c ts01.lus -n ts01}
 PASS: gcc -o ts01.exec ts01_ts01.c ts01_ts01_loop.c 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c ts01.lus  {}
@@ -727,7 +708,7 @@ PASS: gcc -o zzz2.exec zzz2_zzz2.c zzz2_zzz2_loop.c
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus  {}
 
 ==> lus2lic3.sum <==
-Test Run By jahier on Mon Oct  6 11:11:50 
+Test Run By jahier on Tue Oct  7 16:23:54 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic3 tests ===
@@ -739,38 +720,31 @@ Running target unix
 Running ./lus2lic.tests/test3.exp ...
 PASS: ./lus2lic {-o COUNTER.lic COUNTER.lus}
 PASS: ./lus2lic {-ec -o COUNTER.ec COUNTER.lus}
-PASS: ./myec2c {-o COUNTER.c COUNTER.ec}
-PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node COUNTER.lus {}
+FAIL: Try ec2c on the result: ./myec2c {-o COUNTER.c COUNTER.ec}
 PASS: ./lus2lic {-o CURRENT.lic CURRENT.lus}
 PASS: ./lus2lic {-ec -o CURRENT.ec CURRENT.lus}
-PASS: ./myec2c {-o CURRENT.c CURRENT.ec}
-PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node CURRENT.lus {}
+FAIL: Try ec2c on the result: ./myec2c {-o CURRENT.c CURRENT.ec}
 PASS: ./lus2lic {-o Condact.lic Condact.lus}
 PASS: ./lus2lic {-ec -o Condact.ec Condact.lus}
 PASS: ./myec2c {-o Condact.c Condact.ec}
 PASS: ./lus2lic {-o EDGE.lic EDGE.lus}
 PASS: ./lus2lic {-ec -o EDGE.ec EDGE.lus}
-PASS: ./myec2c {-o EDGE.c EDGE.ec}
-PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node EDGE.lus {}
+FAIL: Try ec2c on the result: ./myec2c {-o EDGE.c EDGE.ec}
 PASS: ./lus2lic {-o ELMU.lic ELMU.lus}
 PASS: ./lus2lic {-ec -o ELMU.ec ELMU.lus}
-PASS: ./myec2c {-o ELMU.c ELMU.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o ELMU.c ELMU.ec}
 PASS: ./lus2lic {-o FALLING_EDGE.lic FALLING_EDGE.lus}
 PASS: ./lus2lic {-ec -o FALLING_EDGE.ec FALLING_EDGE.lus}
-PASS: ./myec2c {-o FALLING_EDGE.c FALLING_EDGE.ec}
-PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node FALLING_EDGE.lus {}
+FAIL: Try ec2c on the result: ./myec2c {-o FALLING_EDGE.c FALLING_EDGE.ec}
 PASS: ./lus2lic {-o FillFollowedByRed.lic FillFollowedByRed.lus}
 PASS: ./lus2lic {-ec -o FillFollowedByRed.ec FillFollowedByRed.lus}
-PASS: ./myec2c {-o FillFollowedByRed.c FillFollowedByRed.ec}
-PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node FillFollowedByRed.lus {}
+FAIL: Try ec2c on the result: ./myec2c {-o FillFollowedByRed.c FillFollowedByRed.ec}
 PASS: ./lus2lic {-o Gyroscope.lic Gyroscope.lus}
 PASS: ./lus2lic {-ec -o Gyroscope.ec Gyroscope.lus}
-PASS: ./myec2c {-o Gyroscope.c Gyroscope.ec}
-FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node Gyroscope.lus {}
+FAIL: Try ec2c on the result: ./myec2c {-o Gyroscope.c Gyroscope.ec}
 PASS: ./lus2lic {-o Gyroscope2.lic Gyroscope2.lus}
 PASS: ./lus2lic {-ec -o Gyroscope2.ec Gyroscope2.lus}
-PASS: ./myec2c {-o Gyroscope2.c Gyroscope2.ec}
-FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node Gyroscope2.lus {}
+FAIL: Try ec2c on the result: ./myec2c {-o Gyroscope2.c Gyroscope2.ec}
 PASS: ./lus2lic {-o Int.lic Int.lus}
 PASS: ./lus2lic {-ec -o Int.ec Int.lus}
 PASS: ./myec2c {-o Int.c Int.ec}
@@ -804,7 +778,7 @@ PASS: ./myec2c {-o alias.c alias.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node alias.lus {}
 PASS: ./lus2lic {-o arbitre.lic arbitre.lus}
 PASS: ./lus2lic {-ec -o arbitre.ec arbitre.lus}
-PASS: ./myec2c {-o arbitre.c arbitre.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o arbitre.c arbitre.ec}
 PASS: ./lus2lic {-o argos.lic argos.lus}
 PASS: ./lus2lic {-ec -o argos.ec argos.lus}
 PASS: ./myec2c {-o argos.c argos.ec}
@@ -823,7 +797,7 @@ PASS: ./myec2c {-o arrays.c arrays.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node arrays.lus {}
 PASS: ./lus2lic {-o asservi.lic asservi.lus}
 PASS: ./lus2lic {-ec -o asservi.ec asservi.lus}
-PASS: ./myec2c {-o asservi.c asservi.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o asservi.c asservi.ec}
 PASS: ./lus2lic {-o bad_call03.lic bad_call03.lus}
 PASS: ./lus2lic {-ec -o bad_call03.ec bad_call03.lus}
 PASS: ./myec2c {-o bad_call03.c bad_call03.ec}
@@ -859,7 +833,7 @@ PASS: ./myec2c {-o calculs_max.c calculs_max.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node calculs_max.lus {}
 PASS: ./lus2lic {-o call.lic call.lus}
 PASS: ./lus2lic {-ec -o call.ec call.lus}
-PASS: ./myec2c {-o call.c call.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o call.c call.ec}
 PASS: ./lus2lic {-o call01.lic call01.lus}
 PASS: ./lus2lic {-ec -o call01.ec call01.lus}
 PASS: ./myec2c {-o call01.c call01.ec}
@@ -876,7 +850,7 @@ PASS: ./myec2c {-o call04.c call04.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node call04.lus {}
 PASS: ./lus2lic {-o call05.lic call05.lus}
 PASS: ./lus2lic {-ec -o call05.ec call05.lus}
-PASS: ./myec2c {-o call05.c call05.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o call05.c call05.ec}
 PASS: ./lus2lic {-o call06.lic call06.lus}
 PASS: ./lus2lic {-ec -o call06.ec call06.lus}
 PASS: ./myec2c {-o call06.c call06.ec}
@@ -905,7 +879,7 @@ PASS: ./myec2c {-o ck5.c ck5.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node ck5.lus {}
 PASS: ./lus2lic {-o ck6.lic ck6.lus}
 PASS: ./lus2lic {-ec -o ck6.ec ck6.lus}
-PASS: ./myec2c {-o ck6.c ck6.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o ck6.c ck6.ec}
 PASS: ./lus2lic {-o ck7.lic ck7.lus}
 PASS: ./lus2lic {-ec -o ck7.ec ck7.lus}
 PASS: ./myec2c {-o ck7.c ck7.ec}
@@ -963,13 +937,13 @@ PASS: ./myec2c {-o deSimone.c deSimone.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node deSimone.lus {}
 PASS: ./lus2lic {-o decl.lic decl.lus}
 PASS: ./lus2lic {-ec -o decl.ec decl.lus}
-PASS: ./myec2c {-o decl.c decl.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o decl.c decl.ec}
 PASS: ./lus2lic {-o declaration.lic declaration.lus}
 PASS: ./lus2lic {-ec -o declaration.ec declaration.lus}
 PASS: ./myec2c {-o declaration.c declaration.ec}
 PASS: ./lus2lic {-o deconne.lic deconne.lus}
 PASS: ./lus2lic {-ec -o deconne.ec deconne.lus}
-PASS: ./myec2c {-o deconne.c deconne.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o deconne.c deconne.ec}
 PASS: ./lus2lic {-o dep.lic dep.lus}
 PASS: ./lus2lic {-ec -o dep.ec dep.lus}
 PASS: ./myec2c {-o dep.c dep.ec}
@@ -1077,7 +1051,7 @@ PASS: ./myec2c {-o lucky.c lucky.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node lucky.lus {}
 PASS: ./lus2lic {-o lustre.lic lustre.lus}
 PASS: ./lus2lic {-ec -o lustre.ec lustre.lus}
-PASS: ./myec2c {-o lustre.c lustre.ec}
+FAIL: Try ec2c on the result: ./myec2c {-o lustre.c lustre.ec}
 PASS: ./lus2lic {-o lustre_test1_ok.lic lustre_test1_ok.lus}
 PASS: ./lus2lic {-ec -o lustre_test1_ok.ec lustre_test1_ok.lus}
 PASS: ./myec2c {-o lustre_test1_ok.c lustre_test1_ok.ec}
@@ -1230,7 +1204,7 @@ PASS: ./myec2c {-o multipar.c multipar.ec}
 PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {}
 
 ==> lus2lic4.sum <==
-Test Run By jahier on Mon Oct  6 11:12:43 
+Test Run By jahier on Tue Oct  7 16:24:11 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic4 tests ===
@@ -1701,22 +1675,22 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 
 		=== lus2lic1 Summary ===
 
-# of expected passes		319
-# of unexpected failures	3
+# of expected passes		299
+# of unexpected failures	13
 
 ==> lus2lic2.sum <==
 
 		=== lus2lic2 Summary ===
 
-# of expected passes		316
-# of unexpected failures	2
+# of expected passes		298
+# of unexpected failures	11
 
 ==> lus2lic3.sum <==
 
 		=== lus2lic3 Summary ===
 
-# of expected passes		485
-# of unexpected failures	6
+# of expected passes		464
+# of unexpected failures	20
 
 ==> lus2lic4.sum <==
 
@@ -1725,15 +1699,13 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 # of expected passes		447
 # of unexpected failures	3
 ===============================
-# Total number of failures: 14
+# Total number of failures: 47
 lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 0 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 37 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 87 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 52 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 141 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 20 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 56 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 17 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 66 seconds
 * Ref time: 
-0.04user 0.10system 5:18.90elapsed 0%CPU (0avgtext+0avgdata 3004maxresident)k
-120inputs+0outputs (0major+14860minor)pagefaults 0swaps
+0.05user 0.09system 2:40.91elapsed 0%CPU (0avgtext+0avgdata 3000maxresident)k
+120inputs+0outputs (0major+14858minor)pagefaults 0swaps
 * Quick time (-j 4):
-0.05user 0.08system 2:36.87elapsed 0%CPU (0avgtext+0avgdata 3000maxresident)k
-120inputs+0outputs (0major+14869minor)pagefaults 0swaps
diff --git a/test/lus2lic.time b/test/lus2lic.time
index 37d573147c412a6a4ac9344e8912f7bb50bd594c..2e4845397229c044203db7026490123895e7ba17 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,11 +1,9 @@
 lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 0 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 37 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 87 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 52 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 141 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 20 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 56 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 17 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 66 seconds
 * Ref time: 
-0.04user 0.10system 5:18.90elapsed 0%CPU (0avgtext+0avgdata 3004maxresident)k
-120inputs+0outputs (0major+14860minor)pagefaults 0swaps
+0.05user 0.09system 2:40.91elapsed 0%CPU (0avgtext+0avgdata 3000maxresident)k
+120inputs+0outputs (0major+14858minor)pagefaults 0swaps
 * Quick time (-j 4):
-0.05user 0.08system 2:36.87elapsed 0%CPU (0avgtext+0avgdata 3000maxresident)k
-120inputs+0outputs (0major+14869minor)pagefaults 0swaps