diff --git a/src/global.ml b/src/global.ml
index 68c3c0dd3b44f9720c1b0c81c8028bdbc287986a..e7f4554fe1c4320aca39bde7a1006c7677d77e0f 100644
--- a/src/global.ml
+++ b/src/global.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 08/01/2009 (at 15:28) by Erwan Jahier> *)
+(** Time-stamp: <modified the 05/02/2009 (at 14:56) by Erwan Jahier> *)
 
 (** Some global variables. *)
 
@@ -15,6 +15,7 @@ let run_unit_test = ref false
 let one_op_per_equation = ref true
 let inline_iterator = ref false
 let lv4 = ref false
+let ec = ref false
 let expand_nodes = ref false
 let expand_enums = ref false
 let expand_structs = ref false
diff --git a/src/licDump.ml b/src/licDump.ml
index ffe3cb319726dd05c417e707711963deff2756a3..5761b60145880b8e0b39f4ba743021ca289bd1f5 100644
--- a/src/licDump.ml
+++ b/src/licDump.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 04/02/2009 (at 15:26) by Erwan Jahier> *)
+(** Time-stamp: <modified the 05/02/2009 (at 15:01) by Erwan Jahier> *)
 
 open Printf
 open Lxm
@@ -229,9 +229,17 @@ and (type_string_of_var_info_eff: Eff.var_info -> string) =
     (string_of_clock2 (snd x.var_clock_eff))
 
 and string_of_decl var_info_eff = 
-  (Ident.to_string var_info_eff.var_name_eff) ^ ":" ^ 
-    (string_of_type_eff var_info_eff.var_type_eff) ^
-    (string_of_clock (snd var_info_eff.var_clock_eff))
+  let vt_str = 
+    (Ident.to_string var_info_eff.var_name_eff) ^ ":" ^ 
+      (string_of_type_eff var_info_eff.var_type_eff) 
+  in  
+  let clk_str = (string_of_clock (snd var_info_eff.var_clock_eff)) in
+  let vt_str = 
+    if !Global.ec && snd var_info_eff.var_clock_eff <> BaseEff 
+    then "(" ^ vt_str ^ ")" 
+    else vt_str 
+  in
+    vt_str ^ clk_str
 
 and (string_of_type_decl_list : Eff.var_info list -> string -> string) =
   fun tel sep -> 
@@ -489,7 +497,7 @@ and (const_decl: Ident.long -> Eff.const -> string) =
 and (node_of_node_exp_eff: Eff.node_exp -> string) =
   fun neff -> 
     wrap_long_profile (
-      (if neff.def_eff = ExternEff then "extern " else "") ^
+      (if neff.def_eff = ExternEff && not (!Global.lv4) then "extern " else "") ^
         (if neff.has_mem_eff then "node " else "function ") ^
         (string_of_node_key_rec neff.node_key_eff) ^
         (profile_of_node_exp_eff neff)) ^ 
diff --git a/src/main.ml b/src/main.ml
index 9d4bc8768eb857846a7ea30f157488fa2fda8b2b..ae1903f7e284de0065f325943d4bb7736f82fe2e 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 03/02/2009 (at 17:03) by Erwan Jahier> *)
+(** Time-stamp: <modified the 05/02/2009 (at 14:56) by Erwan Jahier> *)
 
 (** Here follows a description of the different modules used by this lus2lic compiler.
 
@@ -167,6 +167,7 @@ and set_v4_options () =
   Global.expand_structs := true
 and set_ec_options () =
   set_v4_options ();
+  Global.ec := true;
   Global.expand_nodes := true
 
 and
diff --git a/src/test/Makefile b/src/test/Makefile
index 004f87e5f40c641dad47b7a428c66296e2a21c9c..4107a6eeaefd5ffd8acc6cfcce1bd870a8966c49 100644
--- a/src/test/Makefile
+++ b/src/test/Makefile
@@ -71,6 +71,8 @@ test: begin unit help version do_not_exist same_file
 	rm -f test.res ; cat test_ok.res test_ko.res > test.res ;\
 	diff -u test.res.exp test.res > test.diff || \
 		(cat test.diff ; echo "cf test.diff"; exit 1)
+utest:
+	cp test.res test.res.exp 
 
 
 errors_nb:
@@ -85,8 +87,23 @@ errors:errors_nb
 
 
 
-utest:
-	cp test.res test.res.exp 
+
+
+test_ec: 
+	rm test_ec.res
+	for d in ${OK_LUS}; do \
+		echo -e "\n$(NL)====> $(LC) -ec $$d -o /tmp/xx.ec" >> test_ec.res; \
+		$(LC0) -ec $$d -o /tmp/xx.ec >> test_ec.res 2>&1 ;\
+		echo -e "ec2c /tmp/xx.ec" >> test_ec.res; \
+		ec2c /tmp/xx.ec >> test_ec.res 2>&1 ;\
+	done; \
+	diff -u test_ec.res.exp test_ec.res > test_ec.diff || \
+		(cat test.diff ; echo "cf test.diff"; exit 1)
+
+
+utest_ec:
+	cp test_ec.res test_ec.res.exp 
+
 
 
 clean: