diff --git a/_oasis b/_oasis
index b8954e1e9f33eba8d36d7610db286e4c5a2f1a98..534828e9a4fb4d55c8cee65a728fa8166cc77624 100644
--- a/_oasis
+++ b/_oasis
@@ -1,6 +1,6 @@
 OASISFormat: 0.4
 Name:        lustre-v6
-Version:     1.656
+Version:     1.657
 Synopsis:    The Lustre V6 Verimag compiler
 Description: This package contains:
    (1) lus2lic: the (current) name of the compiler (and interpreter via -exec).
diff --git a/src/l2lNoWhenNot.ml b/src/l2lNoWhenNot.ml
index 8f3d79fb2268720ee57b21d6a3ef933208033801..488a0518a1a96b7d8b5b1786ac21054cc72c43aa 100644
--- a/src/l2lNoWhenNot.ml
+++ b/src/l2lNoWhenNot.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 26/08/2016 (at 15:04) by Erwan Jahier> *)
+(** Time-stamp: <modified the 26/08/2016 (at 15:31) by Erwan Jahier> *)
 
 open Lxm
 open Lic
@@ -89,6 +89,12 @@ let rec update_clock : Lxm.t -> acc -> clock -> clock * acc =
        in
        On((("Lustre","true"),nv.var_name_eff, Bool_type_eff), sclk), acc
 
+let rec update_clock_list : Lxm.t -> clock list * acc -> clock -> clock list * acc =
+  fun lxm (res,acc) clk ->
+  let clk, acc = update_clock lxm acc clk in
+  clk::res, acc
+
+                                                                       
 let update_var_info : Lxm.t -> acc -> var_info -> var_info * acc = 
   fun lxm acc vi ->
   let (id, clk) = vi.var_clock_eff in
@@ -189,7 +195,11 @@ and (do_val_exp: LicPrg.t -> val_exp -> acc -> val_exp * acc) =
              CallByPosLic(op, vel), acc
 	     )
     in 
-    { ve with ve_core = ve_core },acc
+    let lxm = lxm_of_val_exp ve in
+    let ve_clk, acc = List.fold_left (update_clock_list lxm) ([],acc) ve.ve_clk in
+    { ve with ve_core = ve_core;
+              ve_clk  = List.rev ve_clk;
+    },acc
 
 and (do_val_exp_flag:  LicPrg.t -> val_exp srcflagged -> acc -> 
      val_exp srcflagged * acc) =
diff --git a/src/l2lWhenOnId.ml b/src/l2lWhenOnId.ml
index ee77956b57006e8ec2c5ccbdf3307e05392c2da8..853eb00130189dafa7fe176c826de47a5a023088 100644
--- a/src/l2lWhenOnId.ml
+++ b/src/l2lWhenOnId.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 26/08/2016 (at 10:53) by Erwan Jahier> *)
+(** Time-stamp: <modified the 26/08/2016 (at 15:27) by Erwan Jahier> *)
 
 open Lxm
 open Lic
@@ -99,6 +99,12 @@ let rec update_clock : Lxm.t -> acc -> clock -> clock * acc =
          let nv, acc = gen_ident lxm cc cv ct sclk acc in
          On((("Lustre","true"),nv.var_name_eff, Bool_type_eff), sclk), acc
 
+let rec update_clock_list : Lxm.t -> clock list * acc -> clock -> clock list * acc =
+  fun lxm (res,acc) clk ->
+  let clk, acc = update_clock lxm acc clk in
+  clk::res, acc
+
+                                                                         
 let update_var_info : Lxm.t -> acc -> var_info -> var_info * acc = 
   fun lxm acc vi ->
   let (id, clk) = vi.var_clock_eff in
@@ -198,8 +204,13 @@ and (do_val_exp: LicPrg.t -> val_exp -> acc -> val_exp * acc) =
           | _ ->
              CallByPosLic(op, vel), acc
 	     )
-    in 
-    { ve with ve_core = ve_core },acc
+    in
+    let lxm = lxm_of_val_exp ve in
+    let ve_clk, acc = List.fold_left (update_clock_list lxm) ([],acc) ve.ve_clk in
+      { ve with
+        ve_core = ve_core;
+        ve_clk  = List.rev ve_clk;
+      },acc
 
 and (do_val_exp_flag:  LicPrg.t -> val_exp srcflagged -> acc -> 
      val_exp srcflagged * acc) =
diff --git a/src/lv6version.ml b/src/lv6version.ml
index 6499d5aba61391e132b78738ec641fa18dc01c5e..84d1bc3708c047e128e5e5b4232b4ca76aefa130 100644
--- a/src/lv6version.ml
+++ b/src/lv6version.ml
@@ -1,7 +1,7 @@
 (** Automatically generated from Makefile *) 
 let tool = "lus2lic"
 let branch = "master"
-let commit = "656"
-let sha_1 = "ec68a79c765f907feb08a0a74eff5262bc4cd18c"
+let commit = "657"
+let sha_1 = "1a153291f645c667cb3189a1f1352817bf316944"
 let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")")
 let maintainer = "jahier@imag.fr"