diff --git a/src/soc2c.ml b/src/soc2c.ml
index 0074cec79d9b64ebdf340e35ec6391132a022813..46fcb49533ec37c881ac451a2a03ab341f5b99b8 100644
--- a/src/soc2c.ml
+++ b/src/soc2c.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 24/06/2014 (at 14:26) by Erwan Jahier> *)
+(* Time-stamp: <modified the 24/06/2014 (at 17:14) by Erwan Jahier> *)
 
 
 (* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
diff --git a/src/soc2cUtil.ml b/src/soc2cUtil.ml
index 466f46aaaecaccaa047ec7a7d17c3cbdd7f0e757..980cbf83a06367f435f03380e828251f7eb1911c 100644
--- a/src/soc2cUtil.ml
+++ b/src/soc2cUtil.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 24/06/2014 (at 14:28) by Erwan Jahier> *)
+(* Time-stamp: <modified the 24/06/2014 (at 17:14) by Erwan Jahier> *)
 
 
 (* exported *) 
@@ -35,7 +35,7 @@ type var_kind = (* XXX poor names: fixme! *)
 let (ctx_var : var_kind -> Ident.t -> string) =
   fun opt id -> 
     match opt with
-      | ML_IO sk -> Printf.sprintf "%s.%s" (Soc2cIdent.get_soc_name sk) (id2s id)
+      | ML_IO sk -> Printf.sprintf "%s_ctx.%s" (Soc2cIdent.get_soc_name sk) (id2s id)
       | M_IO  ->  Printf.sprintf "ctx->%s" (id2s id)
       | Local -> Printf.sprintf "%s" (id2s id)
 
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index ea4ee4386d2c84f3da2d9a8ba8c7d1acd63c1aed..b1dd6e5614021822740b8a83fab5ebc1fab91be8 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Tue Jun 24 17:01:44 2014
+Test Run By jahier on Tue Jun 24 17:20:32 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -558,7 +558,7 @@ PASS: ./lus2lic {-ec -o /tmp/clock_ite.ec should_work/clock_ite.lus}
 PASS: ./myec2c {-o /tmp/clock_ite.c /tmp/clock_ite.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock_ite.lus
 PASS: ./lus2lic {-2c should_work/clock_ite.lus -n clock_ite}
-FAIL: Check that the generated C code compiles  : gcc clock_ite_clock_ite.c clock_ite_clock_ite_loop.c 
+PASS: gcc clock_ite_clock_ite.c clock_ite_clock_ite_loop.c 
 PASS: ./lus2lic {-o /tmp/morel4.lic should_work/morel4.lus}
 PASS: ./lus2lic {-ec -o /tmp/morel4.ec should_work/morel4.lus}
 PASS: ./myec2c {-o /tmp/morel4.c /tmp/morel4.ec}
@@ -777,7 +777,7 @@ PASS: ./lus2lic {-ec -o /tmp/CURRENT.ec should_work/CURRENT.lus}
 PASS: ./myec2c {-o /tmp/CURRENT.c /tmp/CURRENT.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/CURRENT.lus
 PASS: ./lus2lic {-2c should_work/CURRENT.lus -n CURRENT}
-FAIL: Check that the generated C code compiles  : gcc CURRENT_CURRENT.c CURRENT_CURRENT_loop.c 
+PASS: gcc CURRENT_CURRENT.c CURRENT_CURRENT_loop.c 
 PASS: ./lus2lic {-o /tmp/left.lic should_work/left.lus}
 PASS: ./lus2lic {-ec -o /tmp/left.ec should_work/left.lus}
 PASS: ./myec2c {-o /tmp/left.c /tmp/left.ec}
@@ -908,7 +908,7 @@ PASS: ./lus2lic {-ec -o /tmp/pack1.ec should_work/pack1.lus}
 PASS: ./myec2c {-o /tmp/pack1.c /tmp/pack1.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pack1.lus
 PASS: ./lus2lic {-2c should_work/pack1.lus -n pack1}
-FAIL: Check that the generated C code compiles  : gcc pack1_pack1.c pack1_pack1_loop.c 
+PASS: gcc pack1_pack1.c pack1_pack1_loop.c 
 PASS: ./lus2lic {-o /tmp/bob.lic should_work/bob.lus}
 PASS: ./lus2lic {-ec -o /tmp/bob.ec should_work/bob.lus}
 PASS: ./myec2c {-o /tmp/bob.c /tmp/bob.ec}
@@ -1035,7 +1035,7 @@ PASS: ./lus2lic {-ec -o /tmp/filliter.ec should_work/filliter.lus}
 PASS: ./myec2c {-o /tmp/filliter.c /tmp/filliter.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/filliter.lus
 PASS: ./lus2lic {-2c should_work/filliter.lus -n filliter}
-FAIL: Check that the generated C code compiles  : gcc filliter_filliter.c filliter_filliter_loop.c 
+PASS: gcc filliter_filliter.c filliter_filliter_loop.c 
 PASS: ./lus2lic {-o /tmp/minmax4.lic should_work/minmax4.lus}
 PASS: ./lus2lic {-ec -o /tmp/minmax4.ec should_work/minmax4.lus}
 PASS: ./myec2c {-o /tmp/minmax4.c /tmp/minmax4.ec}
@@ -1226,7 +1226,7 @@ PASS: ./lus2lic {-ec -o /tmp/ck7.ec should_work/ck7.lus}
 PASS: ./myec2c {-o /tmp/ck7.c /tmp/ck7.ec}
 FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck7.lus
 PASS: ./lus2lic {-2c should_work/ck7.lus -n ck7}
-FAIL: Check that the generated C code compiles  : gcc ck7_ck7.c ck7_ck7_loop.c 
+PASS: gcc ck7_ck7.c ck7_ck7_loop.c 
 PASS: ./lus2lic {-o /tmp/nc10.lic should_work/nc10.lus}
 PASS: ./lus2lic {-ec -o /tmp/nc10.ec should_work/nc10.lus}
 PASS: ./myec2c {-o /tmp/nc10.c /tmp/nc10.ec}
@@ -1482,9 +1482,11 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
 
 		=== lus2lic Summary ===
 
-# of expected passes		1292
-# of unexpected failures	120
+# of expected passes		1297
+# of unexpected failures	115
 # of unexpected successes	21
 # of expected failures		37
-testcase ./lus2lic.tests/non-reg.exp completed in 130 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 136 seconds
+testcase ./lus2lic.tests/progression.exp completed in 0 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 136 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/lus2lic.time b/test/lus2lic.time
index 6879740d65575caa2a8a41db20e481570208f3e8..2894b2b808b9bf9dd9f4d005c516f1b39cee73e7 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,2 +1,2 @@
-testcase ./lus2lic.tests/non-reg.exp completed in 130 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 136 seconds
 testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/todo.org b/todo.org
index 928e4dddf7b03ba18dee54b8484d821682a57350..cc35078d43feb0da4e46ea575334efc7a7ecf500 100644
--- a/todo.org
+++ b/todo.org
@@ -52,15 +52,15 @@ http://www.di.ens.fr/~pouzet/bib/lctes12.pdf
 
 
 1. file:test/should_work/mappredef.lus lus2lic -2c should_work/mappredef.lus -n mappredef
+2. file:test/should_work/minus.lus lus2lic -2c should_work/minus.lus -n minus
+3. file:test/should_work/predefOp.lus lus2lic -2c should_work/predefOp.lus -n predefOp
    pb de types polymorphes
-2. file:test/should_work/predefOp.lus lus2lic -2c should_work/predefOp.lus -n predefOp
-3. file:test/should_work/matrice2.lus lus2lic -2c should_work/matrice2.lus -n matrice2
-4. file:test/should_work/ply02.lus lus2lic -2c should_work/ply02.lus -n ply02
-5. file:test/should_work/morel3.lus lus2lic -2c should_work/morel3.lus -n morel3
-6. file:test/should_work/ply03.lus lus2lic -2c should_work/ply03.lus -n ply03
-7. file:test/should_work/xx.lus lus2lic -2c should_work/xx.lus -n xx
-8. file:test/should_work/test.lus lus2lic -2c should_work/test.lus -n test
-9. file:test/should_work/clock.lus lus2lic -2c should_work/clock.lus -n clock
+4. file:test/should_work/matrice2.lus lus2lic -2c should_work/matrice2.lus -n matrice2
+5. file:test/should_work/ply02.lus lus2lic -2c should_work/ply02.lus -n ply02
+6. file:test/should_work/morel3.lus lus2lic -2c should_work/morel3.lus -n morel3
+7. file:test/should_work/ply03.lus lus2lic -2c should_work/ply03.lus -n ply03
+8. file:test/should_work/xx.lus lus2lic -2c should_work/xx.lus -n xx
+9. file:test/should_work/test.lus lus2lic -2c should_work/test.lus -n test
 10. file:test/should_work/morel4.lus lus2lic -2c should_work/morel4.lus -n morel4
 11. file:test/should_work/bad.lus lus2lic -2c should_work/bad.lus -n bad
 12. file:test/should_work/mapinf.lus lus2lic -2c should_work/mapinf.lus -n mapinf
@@ -68,24 +68,21 @@ http://www.di.ens.fr/~pouzet/bib/lctes12.pdf
 14. file:test/should_work/over3.lus lus2lic -2c should_work/over3.lus -n over3
 15. file:test/should_work/carV2.lus lus2lic -2c should_work/carV2.lus -n carV2
 16. file:test/should_work/test.lus lus2lic -2c should_work/test.lus -n test
-17. file:test/should_work/CURRENT.lus lus2lic -2c should_work/CURRENT.lus -n CURRENT
-18. file:test/should_work/left.lus lus2lic -2c should_work/left.lus -n left
-19. file:test/should_work/morel.lus lus2lic -2c should_work/morel.lus -n morel
-20. file:test/should_work/matrice.lus lus2lic -2c should_work/matrice.lus -n matrice
-21. file:test/should_work/exclusion.lus lus2lic -2c should_work/exclusion.lus -n exclusion
-22. file:test/should_work/pack1.lus lus2lic -2c should_work/pack1.lus -n pack1
-23. file:test/should_work/bob.lus lus2lic -2c should_work/bob.lus -n bob
-24. file:test/should_work/morel2.lus lus2lic -2c should_work/morel2.lus -n morel2
-25. file:test/should_work/xxx.lus lus2lic -2c should_work/xxx.lus -n xxx
-26. file:test/should_work/filliter.lus lus2lic -2c should_work/filliter.lus -n filliter
-27. file:test/should_work/mapdeRed.lus lus2lic -2c should_work/mapdeRed.lus -n mapdeRed
-28. file:test/should_work/simpleRed.lus lus2lic -2c should_work/simpleRed.lus -n simpleRed
-29. file:test/should_work/ck7.lus lus2lic -2c should_work/ck7.lus -n ck7
-30. file:test/should_work/redoptest.lus lus2lic -2c should_work/redoptest.lus -n redoptest
-31. file:test/should_work/cond01.lus lus2lic -2c should_work/cond01.lus -n cond01
-32. file:test/should_work/overload.lus lus2lic -2c should_work/overload.lus -n overload
-33. file:test/should_work/simple.lus lus2lic -2c should_work/simple.lus -n simple
-34. file:test/should_work/minus.lus lus2lic -2c should_work/minus.lus -n minus
+17. file:test/should_work/left.lus lus2lic -2c should_work/left.lus -n left
+18. file:test/should_work/morel.lus lus2lic -2c should_work/morel.lus -n morel
+19. file:test/should_work/matrice.lus lus2lic -2c should_work/matrice.lus -n matrice
+20. file:test/should_work/exclusion.lus lus2lic -2c should_work/exclusion.lus -n exclusion
+21. file:test/should_work/bob.lus lus2lic -2c should_work/bob.lus -n bob
+22. file:test/should_work/morel2.lus lus2lic -2c should_work/morel2.lus -n morel2
+23. file:test/should_work/xxx.lus lus2lic -2c should_work/xxx.lus -n xxx
+24. file:test/should_work/mapdeRed.lus lus2lic -2c should_work/mapdeRed.lus -n mapdeRed
+25. file:test/should_work/simpleRed.lus lus2lic -2c should_work/simpleRed.lus -n simpleRed
+26. file:test/should_work/redoptest.lus lus2lic -2c should_work/redoptest.lus -n redoptest
+27. file:test/should_work/cond01.lus lus2lic -2c should_work/cond01.lus -n cond01
+28. file:test/should_work/overload.lus lus2lic -2c should_work/overload.lus -n overload
+29. file:test/should_work/simple.lus lus2lic -2c should_work/simple.lus -n simple
+    type externe
+
 
 
 * Packages, modeles, etc.