diff --git a/src/soc2c.ml b/src/soc2c.ml
index 810999c09e44274cd21c47da03a9877f76f15f23..dc65f11c946a54a4a56a3d80d66922a9cf5af2ff 100644
--- a/src/soc2c.ml
+++ b/src/soc2c.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 10/06/2014 (at 15:52) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/06/2014 (at 16:01) by Erwan Jahier> *)
 
 
 (* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
@@ -228,7 +228,7 @@ let (type_to_format_string : Data.t -> string) =
     | Bool -> "%d"
     | Int -> "%d"
     | Real-> "%g"
-    | Extern s -> assert false
+    | Extern s -> "%s"
     | Enum  (s, sl) -> "%d" 
     | Struct (sid,_) -> "%s"
     | Array (ty, sz) -> "%s"
diff --git a/src/socVar.ml b/src/socVar.ml
index 251c746446d35262087a64e9854115369e49a0f6..5bf8610616b08f1a8c6b22dfb3ea0a6441f6d826 100644
--- a/src/socVar.ml
+++ b/src/socVar.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 10/06/2014 (at 11:10) by Erwan Jahier> *)
+(* Time-stamp: <modified the 10/06/2014 (at 15:57) by Erwan Jahier> *)
 
 open Data
 
@@ -23,9 +23,7 @@ and expand_var enum_flag c_access var = match var with
   | (vn,Struct(name,fl)) -> 
     expand_profile enum_flag c_access 
       (List.map (fun (fn,t) -> vn^(if c_access then "." else "_")^fn,t ) fl)
-  | (vn,Extern id) ->
-    print_string "*** Extern node not yet supported, sorry\n"; flush stdout;
-    assert false (* finish me! *)
+  | (vn,Extern id) -> [var]
   | (vn,Alpha _) -> assert false (* should not occur *)
 
 let (int_to_enum : Data.v -> Soc.ident list -> Data.v) =
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 11095150bad9ef160613ba9bbad043969d07e4e8..d1d8b32c07cdb480d2708b8470f49c0c891e8d75 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Tue Jun 10 15:44:46 2014
+Test Run By jahier on Tue Jun 10 16:03:22 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -1379,7 +1379,7 @@ PASS: ./lus2lic {-o /tmp/simple.lic should_work/simple.lus}
 PASS: ./lus2lic {-ec -o /tmp/simple.ec should_work/simple.lus}
 PASS: ./myec2c {-o /tmp/simple.c /tmp/simple.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/simple.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/simple.lus -n simple}
+PASS: ./lus2lic {-2c should_work/simple.lus -n simple}
 FAIL: Check that the generated C code compiles  : gcc simple_simple.c simple_simple_loop.c 
 PASS: ./lus2lic {-o /tmp/func_with_body.lic should_work/func_with_body.lus}
 PASS: ./lus2lic {-ec -o /tmp/func_with_body.ec should_work/func_with_body.lus}
@@ -1468,9 +1468,9 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
 
 		=== lus2lic Summary ===
 
-# of expected passes		1121
-# of unexpected failures	277
+# of expected passes		1122
+# of unexpected failures	276
 # of unexpected successes	21
 # of expected failures		37
-testcase ./lus2lic.tests/non-reg.exp completed in 120 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 111 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/lus2lic.time b/test/lus2lic.time
index b44d39a9f5ee6b1ab5082107d7a2d0a96c91d35f..5cc34dfe76a190d3ff388082348c8f1c1aaff88a 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,2 +1,2 @@
-testcase ./lus2lic.tests/non-reg.exp completed in 120 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 111 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds