diff --git a/INSTALL.txt b/INSTALL.txt
index c9e66d89288df535531aaf4aa077e168ad01e1a4..4ded5d5f44b23ca736de0ffd7f01c2a7923f8202 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -1,5 +1,5 @@
 (* OASIS_START *)
-(* DO NOT EDIT (digest: 6654b1d4c0725c67fd685887eb061fa7) *)
+(* DO NOT EDIT (digest: 38ef48284869b477673d8d85fa59f3e7) *)
 
 This is the INSTALL file for the lus2lic distribution.
 
@@ -10,9 +10,11 @@ Dependencies
 ============
 
 In order to compile this package, you will need:
-                                                * ocaml
-                                                * findlib
-                                                * rdbg-plugin
+
+* ocaml
+* findlib
+* rdbg-plugin
+* extlib for executable lus2lic
 
 Installing
 ==========
diff --git a/_oasis b/_oasis
index 7d558b0be15d5f59d5329e11ca7116f93fec5b1c..09e67ee5fde2ef90c2b0a623e46dac55d395416f 100644
--- a/_oasis
+++ b/_oasis
@@ -15,7 +15,7 @@ Executable lus2lic
   Path:       src/
   MainIs:     main.ml
   BuildTools: ocamlbuild 
-  BuildDepends: str,unix,num,rdbg-plugin
+  BuildDepends: str,unix,num,rdbg-plugin,extlib
   Build:true
  CompiledObject: native
 #  CompiledObject: byte
diff --git a/_tags b/_tags
index a681c6256f55cbdcc5262fd543d310da1e2618b2..c8f41b4a0f35ea62ea9ddb688bbd6023b2571897 100644
--- a/_tags
+++ b/_tags
@@ -1,5 +1,5 @@
 # OASIS_START
-# DO NOT EDIT (digest: 2976d8e2b9dc59dbee1849057cd788de)
+# DO NOT EDIT (digest: f21b86c7e59c8317233a32039a042588)
 # Ignore VCS directories, you can use the same kind of rule outside
 # OASIS_START/STOP if you want to exclude directories that contains
 # useless stuff for the build process
@@ -15,10 +15,12 @@ true: annot, bin_annot
 "_darcs": -traverse
 "_darcs": not_hygienic
 # Executable lus2lic
+"src/main.native": pkg_extlib
 "src/main.native": pkg_num
 "src/main.native": pkg_rdbg-plugin
 "src/main.native": pkg_str
 "src/main.native": pkg_unix
+<src/*.ml{,i,y}>: pkg_extlib
 # Library lustre-v6
 "src/lustre-v6.cmxs": use_lustre-v6
 <src/*.ml{,i,y}>: pkg_num
diff --git a/release-lv6/Makefile b/release-lv6/Makefile
index 24262a43a655e7d7d9734570624f1e0c7dc82947..017b33d74b2fba65c5a7f38235709d01ca6fb01a 100644
--- a/release-lv6/Makefile
+++ b/release-lv6/Makefile
@@ -50,6 +50,7 @@ lic2c:
 	cp $(LIC2CDIR)/src/lic2c $(RELNAME)/bin/
 
 test_files:
+	mkfir $(RELNAME)/test/ || true
 	cp -rf $(LUS2LICDIR)/test/should_work $(RELNAME)/test/
 	cp -rf $(LUS2LICDIR)/test/should_fail $(RELNAME)/test/
 	cp -rf $(LUS2LICDIR)/test/lus2lic.tests $(RELNAME)/test/
@@ -110,6 +111,6 @@ test-rel:
 	cd /tmp && \
 	rm -rf $(RELNAME) && \
 	tar xvfz $(RELNAME).tgz && \
-	"cd /tmp/$(RELNAME)/test ; make test"
+	cd /tmp/$(RELNAME)/test ; make test
 
 all: rel
diff --git a/src/lv6MainArgs.ml b/src/lv6MainArgs.ml
index 6bc83d20a7c87b75810fa3fd1bc7065fdb8b52ea..61c5eca261fa14dfbdd0106f65c92163152b98ce 100644
--- a/src/lv6MainArgs.ml
+++ b/src/lv6MainArgs.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 07/04/2015 (at 16:07) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/04/2015 (at 16:04) by Erwan Jahier> *)
 (*
 Le manager d'argument adapté de celui de lutin, plus joli
 N.B. solution un peu batarde : les options sont stockées, comme avant, dans Global,
diff --git a/src/lv6util.ml b/src/lv6util.ml
index 9ee8922c6b625f774f2d7b9f0a12d43d186a7b9d..24f7064f8b9d3fe926b7faa1feb848d580a36061 100644
--- a/src/lv6util.ml
+++ b/src/lv6util.ml
@@ -57,3 +57,9 @@ let my_assoc x l =
   | (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
+
+
+let gen_N i = 
+  let rec aux acc n = if n<0 then acc else aux (n::acc) (n-1) in
+  aux [] i
+let _ = assert (gen_N 10 = [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10])
diff --git a/src/soc.ml b/src/soc.ml
index f23393a09f791e123f0aa3d3e663451737170aa9..6d224e98e2d01a82e8f7903760be7ed9c8f78557 100644
--- a/src/soc.ml
+++ b/src/soc.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 26/02/2015 (at 11:23) by Erwan Jahier> *)
+(* Time-stamp: <modified the 09/04/2015 (at 11:36) by Erwan Jahier> *)
 
 (** Synchronous Object Component *)
 
@@ -25,7 +25,7 @@ type key_opt =
   | Curr of Lv6Id.long  (* clock constructor for current *)
 
 type key = 
-    ident * 
+    ident *
     Data.t list *  (* I/O type list *)
     key_opt
 
diff --git a/src/soc2c.ml b/src/soc2c.ml
index 56eda63c15fc434fe4e8523240b8a69de750b551..8dfc16842158d71f67bd7faa3aaa6c53540272be 100644
--- a/src/soc2c.ml
+++ b/src/soc2c.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 02/04/2015 (at 10:46) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/04/2015 (at 15:38) by Erwan Jahier> *)
 
 
 (* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
@@ -78,11 +78,14 @@ let (gao2c : Soc.tbl -> 'a soc_pp -> Soc.gao -> unit) =
         )
         | Call(vel_out, Method((inst_name,sk),sname), vel_in) -> ( 
           let called_soc = Soc.SocMap.find sk stbl in
-          let ctx = Printf.sprintf "ctx->%s" (id2s inst_name) in
+          let _, get_index = Soc2cInstances.to_array (sp.soc).instances in
+          let index = get_index (inst_name,sk) in
+          let step_arg = Printf.sprintf "ctx->%s_tab[%d]" (get_ctx_name sk) index in
+          let ctx = step_arg in
+          let step_arg = "&"^step_arg in
           List.iter (fun ve  -> assert(var_expr_is_not_a_slice ve)) vel_in;
           List.iter (fun ve  -> assert(var_expr_is_not_a_slice ve)) vel_out;
-          Soc2cDep.gen_step_call sp.soc called_soc vel_out vel_in ctx sname
-            ("&ctx->"^(id2s inst_name))
+          Soc2cDep.gen_step_call sp.soc called_soc vel_out vel_in ctx sname step_arg
         )
         | Call(vel_out, Procedure sk, vel_in) -> (
           let called_soc = Soc.SocMap.find sk stbl in
@@ -127,10 +130,19 @@ let (step2c : Soc.tbl -> 'a soc_pp -> Soc.step_method -> unit) =
         );
         sp.cput (sprintf "\n} // End of %s\n\n" sname)
       )
-let (gen_instance_init_call : 'a soc_pp -> Soc.instance -> unit) =
-  fun sp (id,key) -> 
+let (gen_instance_init_call : 'a soc_pp -> Soc.key * int -> unit) =
+  fun sp (key,i) -> 
     let ctx_name = get_ctx_name key in
-    sp.cfmt "\n    %s_reset(&ctx->%s);" ctx_name (id2s id)
+    if Lv6MainArgs.global_opt.Lv6MainArgs.soc2c_inline_loops || i<4 then
+      for k=0 to i do
+        sp.cfmt "\n    %s_reset(&ctx->%s_tab[%d]);" ctx_name ctx_name k
+      done
+    else (
+      sp.cput (Printf.sprintf "  for (_i=0 ; _i<%d ; _i+=1){" i);
+      sp.cput (Printf.sprintf "\n    %s_reset(&ctx->%s_tab[_i]);" ctx_name ctx_name);
+      sp.cput "\n }"
+    )
+      
 
 let (soc2c: int -> out_channel -> out_channel -> Soc.tbl -> Soc.t -> unit) = 
   fun pass hfile cfile stbl soc -> 
@@ -151,7 +163,9 @@ let (soc2c: int -> out_channel -> out_channel -> Soc.tbl -> Soc.t -> unit) =
         hfmt "void %s_reset(%s_type* ctx);\n" ctx_name ctx_name;
         cfmt "void %s_reset(%s_type* ctx){" ctx_name ctx_name;
         (* Call the reset_ctx functions of the soc instances *)
-        List.iter (gen_instance_init_call sp) soc.instances;
+        if Lv6MainArgs.global_opt.Lv6MainArgs.soc2c_inline_loops then () else 
+          sp.cput "\n  int _i;\n";
+        List.iter (gen_instance_init_call sp) (fst (Soc2cInstances.to_array soc.instances));
         (match soc.key with
           (* set the parameter fields that have a default value (arrow,fby) *)
           | (_,_,MemInit (ve)) -> 
@@ -225,8 +239,8 @@ let (is_extern_type: Lic.type_ -> bool) =
 
 let (typedef : LicPrg.t -> Soc.tbl -> Soc.t -> string) =
   fun licprg soc_tbl main_soc ->
-    (* We need to print the ctx typedef a good order
-       (w.r.t. typedef dependancies).  To do that, we traverse
+    (* We need to print the ctx typedef in a good order
+       (w.r.t. typedef dependencies).  To do that, we traverse
        the tree of soc instances which root is the main soc. *)
     let visited = KeySet.empty in
     (* Soc with memory can be used several times; hence we mark via this
diff --git a/src/soc2cHeap.ml b/src/soc2cHeap.ml
index 1b8ddce6b8601259b60fb7d263453334ea5f6f4b..35dd50676e71ec33753641f33052dd571240bcc1 100644
--- a/src/soc2cHeap.ml
+++ b/src/soc2cHeap.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 26/02/2015 (at 13:47) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/04/2015 (at 15:14) by Erwan Jahier> *)
 
 open Soc2cUtil
 open Soc2cIdent
@@ -126,7 +126,7 @@ let (gen_step_call : Soc.t -> Soc.t -> Soc.var_expr list -> Soc.var_expr list ->
     match inline_soc soc called_soc vel_out vel_in with
       | Some str -> str
       | None ->
-        let vel_in = List.map (string_of_var_expr soc) vel_in in
+        let vel_in  = List.map (string_of_var_expr soc) vel_in in
         let vel_out = List.map (string_of_var_expr soc) vel_out in
         let si_str =
           if vel_in = [] then "" (* occurs for pre *) else 
@@ -175,10 +175,12 @@ let (typedef_of_soc : Soc.t -> string) =
       )
     in
     let str =  str ^ (if soc.instances <> [] then  "   /*INSTANCES*/\n" else "") in
-    let string_of_instance (id,sk) = 
-      Printf.sprintf "   %s_type %s;\n" (get_ctx_name sk) (id2s id)
+    let il, _get_index = Soc2cInstances.to_array soc.instances in
+    let string_of_instance (sk,i) = 
+      let n = get_ctx_name sk in
+      Printf.sprintf "   %s_type %s_tab[%d];\n" n n i
     in
-    let str =  List.fold_left (fun acc inst -> acc^(string_of_instance inst)) str soc.instances in
+    let str = List.fold_left (fun acc inst -> acc^(string_of_instance inst)) str il in
     let str = Printf.sprintf  "%s} %s;\n\n" str ctx_name_type in
     str
 
diff --git a/src/soc2cInstances.ml b/src/soc2cInstances.ml
new file mode 100644
index 0000000000000000000000000000000000000000..996857dbf4e1323c40099be54967247ab73f6784
--- /dev/null
+++ b/src/soc2cInstances.ml
@@ -0,0 +1,54 @@
+(* Time-stamp: <modified the 10/04/2015 (at 11:10) by Erwan Jahier> *)
+
+
+module SocKey = struct
+  type t = Soc.key
+  let compare = compare
+end
+
+module SkMap = Map.Make(SocKey)
+
+(* List.nth^-1 *)
+let (get_pos : 'a -> 'a list -> int) =
+  fun x l ->
+    let rec aux c = function
+      | [] -> assert false (* SNO *)
+      | y::tail -> if x = y then c else aux (c+1) tail
+    in  
+    let pos = aux 0 l in
+    assert (List.nth l pos = x);
+    pos
+
+(** gathers instances with the same key into an array *)
+
+open Soc
+(* exported *)
+
+let find k t = try SkMap.find k t with Not_found -> 
+  Printf.printf "*** SNO: %s not found in %s\n" (Std.dump k) (Std.dump t);
+  flush stdout;
+  assert false
+
+let to_array : ((ident * Soc.key) list -> (Soc.key * int) list * (ident * Soc.key -> int)) =
+  fun l -> 
+    let rec aux tab = function
+      | [] -> tab
+      | (id,key)::tail ->
+        if SkMap.mem key tab then
+          let idl = find key tab in
+          let tab = SkMap.add key (id::idl) tab in
+          aux tab tail
+        else 
+          let tab = SkMap.add key [id] tab in
+          aux tab tail
+    in
+    let tab = aux SkMap.empty l in
+    let il = SkMap.fold (fun sk idl acc -> (sk, List.length idl)::acc) tab [] in
+    let inst_to_index (id,sk) = 
+      let idl = find sk tab in
+      let i = get_pos id (List.rev idl) in
+      i
+    in 
+    il, inst_to_index 
+
+    
diff --git a/src/soc2cInstances.mli b/src/soc2cInstances.mli
new file mode 100644
index 0000000000000000000000000000000000000000..4082d4d8ef19cdd184c7343d9e2e1858ac844beb
--- /dev/null
+++ b/src/soc2cInstances.mli
@@ -0,0 +1,19 @@
+(* Time-stamp: <modified the 09/04/2015 (at 15:09) by Erwan Jahier> *)
+
+(** Each soc has a list of soc instances, made of an (unique) ident
+    and a Soc.key.  
+
+    In order to be able to iterate of such instances (e.g., with a
+    for loop), we want to store them into arrays. This module will
+    help us to do so.
+*)
+
+(** from a list of soc instances l, this function returns :
+
+    - a list made of all the soc.key in l + their occurences in l
+
+    - a function that maps each instance ident to the corresponding
+    ident in the array where it is stored
+*)
+
+val to_array : (Soc.ident * Soc.key) list -> (Soc.key * int) list * (Soc.ident * Soc.key -> int)
diff --git a/src/soc2cStack.ml b/src/soc2cStack.ml
index d92738097008a8b2db9ea5f505a7bbcd3f4f2fc3..a7110e3cf0331a73778649897b636f06241458b3 100644
--- a/src/soc2cStack.ml
+++ b/src/soc2cStack.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 26/02/2015 (at 11:24) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/04/2015 (at 11:23) by Erwan Jahier> *)
 
 open Soc2cUtil
 open Soc2cIdent
@@ -207,10 +207,12 @@ let (typedef_of_soc : Soc.t -> string) =
       )
     in
     let str =  str ^ (if soc.instances <> [] then  "   /*INSTANCES*/\n" else "") in
-    let string_of_instance (id,sk) = 
-      Printf.sprintf "   %s_type %s;\n" (get_ctx_name sk) (id2s id)
+    let il, _get_index = Soc2cInstances.to_array soc.instances in
+    let string_of_instance (sk,i) = 
+      let n = get_ctx_name sk in
+      Printf.sprintf "   %s_type %s_tab[%d];\n" n n i
     in
-    let str =  List.fold_left (fun acc inst -> acc^(string_of_instance inst)) str soc.instances in
+    let str = List.fold_left (fun acc inst -> acc^(string_of_instance inst)) str il in
     let str = Printf.sprintf  "%s} %s;\n\n" str ctx_name_type in
     str
 
diff --git a/src/socPredef2cHeap.ml b/src/socPredef2cHeap.ml
index 2e58fd830fc4b766145f0891728ddcd0d548084b..a762cdf333dd8238ffbc886813d318a458adadcd 100644
--- a/src/socPredef2cHeap.ml
+++ b/src/socPredef2cHeap.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 26/02/2015 (at 09:52) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/04/2015 (at 15:08) by Erwan Jahier> *)
 
 open Data
 open Soc
@@ -211,10 +211,17 @@ let (get_iterator : Soc.t -> string -> Soc.t -> int -> string) =
           array_index,ctx_access
         )
         | _  -> 
-          let inst_names = List.map fst soc.instances in 
-          let inst_names = List.rev inst_names in
-          let step_args = List.map (fun sn  -> ("&ctx->"^(id2s sn))) inst_names in
-          let ctx = List.map (fun sn  -> ("ctx->"^(id2s sn))) inst_names in
+          let il, _ = Soc2cInstances.to_array soc.instances in
+          let step_args = List.flatten(List.map(
+            fun (sk,i) -> 
+              let l = Lv6util.gen_N i in
+              let id = get_ctx_name sk in
+              let step_args = List.map (fun n -> Printf.sprintf "ctx->%s_tab[%d]" id n) l in
+              step_args
+          ) il)
+          in
+          let ctx = step_args in
+          let step_args = List.map (fun x -> "&"^x) step_args in
           let ctx_access =  "ctx->"  in
           let (array_index : int -> var -> Soc.var_expr) =
             fun i (vn,vt) -> Var(Printf.sprintf "ctx->%s[%d]" vn i,vt) 
diff --git a/src/socPredef2cStack.ml b/src/socPredef2cStack.ml
index 26ecb24eaf5939c927737c0468cf888fcbdd8d9f..07b712244a836792a3408dc72d2c43ee7e4274c5 100644
--- a/src/socPredef2cStack.ml
+++ b/src/socPredef2cStack.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 08/04/2015 (at 14:39) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/04/2015 (at 16:21) by Erwan Jahier> *)
 
 open Data
 open Soc
@@ -194,6 +194,7 @@ let (not_an_array : Data.t -> bool) = function
   | Data.Array(_,_) -> false | _ -> true
 
 
+
 (* exported *)
 let (get_iterator : Soc.t -> string -> Soc.t -> int -> string) = 
   fun soc iterator it_soc n -> 
@@ -215,17 +216,25 @@ let (get_iterator : Soc.t -> string -> Soc.t -> int -> string) =
           array_index
         )
         | _  -> 
-          let inst_names = List.map fst soc.instances in
-          let step_args = List.map (fun sn  -> ("&ctx->"^(id2s sn))) inst_names in
-          let ctx = List.map (fun sn -> ("ctx->"^(id2s sn))) inst_names in
+          let il, _ = Soc2cInstances.to_array soc.instances in
+          let step_args = List.flatten(List.map(
+            fun (sk,i) -> 
+              let l = Lv6util.gen_N i in
+              let id = get_ctx_name sk in
+              let step_args = List.map (fun n -> Printf.sprintf "&ctx->%s_tab[%d]" id n) l in
+(*              let ctx = List.map (fun n -> Printf.sprintf "&ctx->%s" id n) l in *)
+              step_args
+          ) il)
+          in
+          let ctx = step_args (*List.map (fun sn -> ("ctx->"^(id2s sn))) inst_names *) in
           let (array_index : int -> var -> Soc.var_expr) =
-            fun i (vn,vt) ->  
+            fun i (vn,vt) ->
               let vt_elt = match vt with
-                | Data.Array(vt,_) -> vt 
+                | Data.Array(vt,_) -> vt
                 | _ -> assert false
-              in 
+              in
               Index(Var (vn, Data.Array(vt,i)),i,vt_elt)
-          (* Var(Printf.sprintf "%s[%d]" vn i,vt)   *)
+          (* Var(Printf.sprintf "%s[%d]" vn i,vt) *)
           in
           Array.of_list step_args,
           Array.of_list ctx,
@@ -323,8 +332,8 @@ let (get_iterator : Soc.t -> string -> Soc.t -> int -> string) =
           List.hd vel_out ::( List.tl vel_in),
           List.hd vel_in ::( List.tl vel_out)
         in
-        let step_arg  = if step_args.(0) = "" then "" else step_args.(0)^"+_i" in
-        let step_arg2 = if step_args.(0) = "" then "" else step_args.(0)^"+_i+1" in
+        let step_arg  = Str.global_replace (Str.regexp "\[0\]") "[_i]"   step_args.(0) in
+        let step_arg2 = Str.global_replace (Str.regexp "\[0\]") "[_i+1]" step_args.(0) in
         let body = Soc2cStack.gen_step_call
           soc it_soc vel_out vel_in ctx.(0) node_step step_arg;
         in
@@ -353,7 +362,7 @@ let (get_iterator : Soc.t -> string -> Soc.t -> int -> string) =
 (* exported *)
 let (get_condact : Soc.t -> Soc.t -> var_expr list -> string ) = 
   fun soc condact_soc el -> 
-        let buff = ref "" in
+    let buff = ref "" in
     let add str = buff:=!buff^(str^"\n") in
 
     let clk = Printf.sprintf "i0" in
@@ -363,24 +372,24 @@ let (get_condact : Soc.t -> Soc.t -> var_expr list -> string ) =
     let vel_out = List.map (fun var -> Var var) vel_out in
     add (Printf.sprintf "  if (%s == _true) { " clk); 
     (if SocUtils.is_memory_less condact_soc then
-      let condact_ctx = get_ctx_name condact_soc.key in
-      add (Soc2cStack.gen_step_call soc condact_soc vel_out vel_in condact_ctx "step" "")
-    else
-      let condact_ctx = 
-        let inst_name =
+        let condact_ctx = get_ctx_name condact_soc.key in
+        add (Soc2cStack.gen_step_call soc condact_soc vel_out vel_in condact_ctx "step" "")
+     else
+        let condact_ctx = 
           match soc.instances with
-            | [inst] -> (id2s (fst inst))
+            | [inst] -> 
+              let _, get_index = Soc2cInstances.to_array soc.instances in
+              let index = get_index (inst) in
+              (Printf.sprintf "ctx->%s_tab[%d]" (get_ctx_name condact_soc.key) index)
             | _ -> assert false
         in
-        Printf.sprintf  "ctx->%s" inst_name
-      in
-      add (Soc2cStack.gen_step_call soc condact_soc vel_out vel_in 
-             condact_ctx "step"  ("&"^condact_ctx))
+        add (Soc2cStack.gen_step_call soc condact_soc vel_out vel_in 
+               condact_ctx "step"  ("&"^condact_ctx))
     );
     add "    ctx->_memory = _false;";
     add "   } else if (ctx->_memory == _true) {";
     List.iter2 (fun var ve -> 
-      add (Printf.sprintf "    %s = %s;" (Soc2cStack.string_of_var_expr soc var)
+      add (Printf.sprintf "    *%s = %s;" (Soc2cStack.string_of_var_expr soc var)
              (Soc2cStack.string_of_var_expr soc ve) )
     ) vel_out el ;
     add "    ctx->_memory = _false;";
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 2592573a7da31b590a8923159aaf03ea923ec962..fd8209430f248e1fc9ad91fd14951f89839673b9 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,5 +1,5 @@
 ==> lus2lic0.sum <==
-Test Run By jahier on Wed Apr  8 14:47:31 
+Test Run By jahier on Fri Apr 10 16:23:08 
 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 Wed Apr  8 14:47:37 
+Test Run By jahier on Fri Apr 10 16:23:06 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic1 tests ===
@@ -397,7 +397,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 Wed Apr  8 14:48:19 
+Test Run By jahier on Fri Apr 10 16:23:14 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic2 tests ===
@@ -727,7 +727,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 Wed Apr  8 14:49:27 
+Test Run By jahier on Fri Apr 10 16:23:10 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic3 tests ===
@@ -1230,7 +1230,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 Wed Apr  8 14:50:05 
+Test Run By jahier on Fri Apr 10 16:23:12 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic4 tests ===
@@ -1726,14 +1726,12 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 # of unexpected failures	3
 ===============================
 # Total number of failures: 14
-lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 5 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 41 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 68 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 38 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 72 seconds
+lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 6 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 57 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 84 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 54 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 91 seconds
 * Ref time: 
-0.04user 0.01system 3:46.25elapsed 0%CPU (0avgtext+0avgdata 5156maxresident)k
-160inputs+0outputs (0major+5535minor)pagefaults 0swaps
 * Quick time (-j 4):
-0.04user 0.02system 1:27.44elapsed 0%CPU (0avgtext+0avgdata 5188maxresident)k
-160inputs+0outputs (0major+5527minor)pagefaults 0swaps
+0.04user 0.02system 1:37.57elapsed 0%CPU (0avgtext+0avgdata 5164maxresident)k
+160inputs+0outputs (0major+5564minor)pagefaults 0swaps
diff --git a/test/lus2lic.time b/test/lus2lic.time
index 8eef8b8d118487ed21a0573de32ce1ccc5a217ae..dbb3628163b5f58cf085125c15c8e54730d643ea 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,11 +1,9 @@
-lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 5 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 41 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 68 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 38 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 72 seconds
+lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 6 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 57 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 84 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 54 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 91 seconds
 * Ref time: 
-0.04user 0.01system 3:46.25elapsed 0%CPU (0avgtext+0avgdata 5156maxresident)k
-160inputs+0outputs (0major+5535minor)pagefaults 0swaps
 * Quick time (-j 4):
-0.04user 0.02system 1:27.44elapsed 0%CPU (0avgtext+0avgdata 5188maxresident)k
-160inputs+0outputs (0major+5527minor)pagefaults 0swaps
+0.04user 0.02system 1:37.57elapsed 0%CPU (0avgtext+0avgdata 5164maxresident)k
+160inputs+0outputs (0major+5564minor)pagefaults 0swaps