diff --git a/src/main.ml b/src/main.ml
index ae05589b972a4aae72e92517b82eb129ce5a8a5e..a7392a8d38bb72ee775601e4945a2dd540323fba 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 10/06/2014 (at 10:46) by Erwan Jahier> *)
+(* Time-stamp: <modified the 19/08/2014 (at 15:36) by Erwan Jahier> *)
 
 open Verbose
 open AstV6
@@ -145,7 +145,7 @@ let (gen_autotest_files : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> uni
       fun (x,t) (y,_) -> 
         let rec aux x y t =
           match t with 
-            | Data.Real ->  [x^"-"^y^" < 0.1 and "^ y^"-"^x^" < 0.1 "]
+            | Data.Real -> ["r_equal("^x^","^y^")"]
             | Data.Array(t,n) -> 
               let res = ref [] in
               for i = 0 to n-1 do
@@ -164,6 +164,18 @@ let (gen_autotest_files : LicPrg.t -> Ident.idref option -> Lv6MainArgs.t -> uni
                        (List.flatten (List.map2 var_to_equals locals outvars)))^");\ntel;\n"
       with _ -> assert false
     in
+    let prg = prg ^ "
+node r_abs(x:real) returns (res:real);
+let
+  res = if x > 0.0 then x else -x;
+tel
+
+const seuil = 0.0001;
+node r_equal(x,y:real) returns (res:bool);
+let
+   res = if r_abs(x)>1.0 then r_abs(1.0-(y/x)) < seuil else r_abs(x-y) < seuil;
+tel
+" in 
     Lv6util.dump_entete oc; 
     output_string oc prg;
     flush oc; 
diff --git a/src/soc2c.ml b/src/soc2c.ml
index 7cf68801aac73188adc4e43358ec9abd727c35b1..34b7e28259fb868fe1550fe487d5ca056919945b 100644
--- a/src/soc2c.ml
+++ b/src/soc2c.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 14/08/2014 (at 17:22) by Erwan Jahier> *)
+(* Time-stamp: <modified the 19/08/2014 (at 15:36) by Erwan Jahier> *)
 
 
 (* let put (os: out_channel) (fmt:('a, unit, string, unit) format4) : 'a = *)
@@ -193,7 +193,7 @@ let (type_to_format_string : Data.t -> string) =
   function
     | Bool -> "%d"
     | Int -> "%d"
-    | Real-> "%g"
+    | Real-> "%f"
     | Extern s -> "%s"
     | Enum  (s, sl) -> "%d" 
     | Struct (sid,_) -> "%s"
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 75effb48e62a5fac32e2c503c7ba622fc0dd554d..ac7d16c41e123b7b9040758bb3b541ec07a707b1 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Thu Aug 14 17:23:15 2014
+Test Run By jahier on Tue Aug 19 15:38:55 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -557,10 +557,10 @@ PASS: ./lus2lic {-2c should_work/packs.lus -n packs}
 PASS: ./lus2lic {-o ./tmp/sincos.lic should_work/sincos.lus}
 PASS: ./lus2lic {-ec -o ./tmp/sincos.ec should_work/sincos.lus}
 PASS: ./myec2c {-o ./tmp/sincos.c ./tmp/sincos.ec}
-FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sincos.lus
+PASS: ../utils/test_lus2lic_no_node should_work/sincos.lus
 PASS: ./lus2lic {-2c should_work/sincos.lus -n sincos}
 PASS: gcc sincos_sincos.c sincos_sincos_loop.c 
-FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/sincos.lus
+PASS: ../utils/compare_exec_and_2c should_work/sincos.lus
 PASS: ./lus2lic {-o ./tmp/newpacks.lic should_work/newpacks.lus}
 PASS: ./lus2lic {-ec -o ./tmp/newpacks.ec should_work/newpacks.lus}
 PASS: ./myec2c {-o ./tmp/newpacks.c ./tmp/newpacks.ec}
@@ -708,10 +708,10 @@ PASS: ../utils/compare_exec_and_2c should_work/mapinf.lus
 PASS: ./lus2lic {-o ./tmp/integrator.lic should_work/integrator.lus}
 PASS: ./lus2lic {-ec -o ./tmp/integrator.ec should_work/integrator.lus}
 PASS: ./myec2c {-o ./tmp/integrator.c ./tmp/integrator.ec}
-FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/integrator.lus
+PASS: ../utils/test_lus2lic_no_node should_work/integrator.lus
 PASS: ./lus2lic {-2c should_work/integrator.lus -n integrator}
 PASS: gcc integrator_integrator.c integrator_integrator_loop.c 
-FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/integrator.lus
+PASS: ../utils/compare_exec_and_2c should_work/integrator.lus
 PASS: ./lus2lic {-o ./tmp/nc4.lic should_work/nc4.lus}
 PASS: ./lus2lic {-ec -o ./tmp/nc4.ec should_work/nc4.lus}
 PASS: ./myec2c {-o ./tmp/nc4.c ./tmp/nc4.ec}
@@ -1670,10 +1670,10 @@ XPASS: Test bad programs (semantics): lus2lic {-o ./tmp/bug.lic should_fail/sema
 
 		=== lus2lic Summary ===
 
-# of expected passes		1532
-# of unexpected failures	65
+# of expected passes		1536
+# of unexpected failures	61
 # of unexpected successes	21
 # of expected failures		37
 # of unresolved testcases	3
-testcase ./lus2lic.tests/non-reg.exp completed in 265 seconds
-testcase ./lus2lic.tests/progression.exp completed in 0 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 781 seconds
+testcase ./lus2lic.tests/progression.exp completed in 1 seconds
diff --git a/test/lus2lic.time b/test/lus2lic.time
index a307bc6f3821c230cc2b080793c4ffc1666a82c9..b34c9fc749f374675f12d4abb55f018dfa1028ef 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,2 +1,2 @@
-testcase ./lus2lic.tests/non-reg.exp completed in 265 seconds
-testcase ./lus2lic.tests/progression.exp completed in 0 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 781 seconds
+testcase ./lus2lic.tests/progression.exp completed in 1 seconds
diff --git a/test/should_work/sincos.lus b/test/should_work/sincos.lus
index 44558b374877b0f0e1fed8242d83d3a31d6c8a8c..ed8b0d8069bc71c55dc99eedcff09272504dcb63 100644
--- a/test/should_work/sincos.lus
+++ b/test/should_work/sincos.lus
@@ -2,8 +2,8 @@
 node sincos(omega:real) returns (sin, cos: real);
 var pcos,psin: real;
 let
- pcos = 1.0 fby pre cos;
- psin = 0.0 fby pre sin;
+ pcos = 1.0 fby cos;
+ psin = 0.0 fby sin;
  sin = omega * integrator(pcos,0.1,0.0);
  cos = omega * integrator(-psin,0.1,1.0);
 tel
diff --git a/todo.org b/todo.org
index f472d35d6f74a920d47d54a443ad9ac085896d37..759ff1e373f20e56be174588ed791dde0f943005 100644
--- a/todo.org
+++ b/todo.org
@@ -10,6 +10,45 @@ lus2lic should_work/decl.lus -n decl -ec
 generates incorrect ec code instead of raising an error.
 
 * lus2lic -2C
+** TODO divergence -exec et -2c
+   - State "TODO"       from ""           [2014-07-11 Fri 12:02]
+
+grep "FAIL:" lus2lic.log | grep "exec" | grep "\-2c" | sed s/'FAIL: Try to compare lus2lic -exec and -2c:'/-/
+
+1. ../utils/compare_exec_and_2c should_work/test_node_expand2.lus
+  -> -2110104000 est n'est pas un entier acceptable pour lutin sur les machines 32 bits...
+
+2. ../utils/compare_exec_and_2c should_work/test_node_expand.lus
+  -> idem
+
+3. ../utils/compare_exec_and_2c should_work/PCOND1.lus
+   -> File "../obj-linux/socExecValue.ml", line 243, characters 6-12: Assertion failed
+
+4. ../utils/compare_exec_and_2c should_work/multipar.lus
+  -> pb  32bits
+5. ../utils/compare_exec_and_2c should_work/array_concat.lus
+  -> le a.out fait un segmentation fault
+
+** TODO Divergences -exec et ecexe
+   - State "TODO"       from ""           [2014-07-11 Fri 16:54]
+
+ grep "FAIL:" lus2lic.log | grep "exec" | grep "ecexe" | sed s/'FAIL: Try to compare lus2lic -exec and ecexe:'/-/
+
+1. ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
+2. ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus
+3. ../utils/test_lus2lic_no_node should_work/test_node_expand.lus
+4. ../utils/test_lus2lic_no_node should_work/modes3x2_v2.lus
+5. ../utils/test_lus2lic_no_node should_work/filter.lus
+6. ../utils/test_lus2lic_no_node should_work/PCOND1.lus
+7. ../utils/test_lus2lic_no_node should_work/multipar.lus
+8. ../utils/test_lus2lic_no_node should_work/activation2.lus
+9. ../utils/test_lus2lic_no_node should_work/bob.lus
+10. ../utils/test_lus2lic_no_node should_work/test_condact.lus
+11. ../utils/test_lus2lic_no_node should_work/activation1.lus
+12. ../utils/test_lus2lic_no_node should_work/Gyroscope.lus
+13. ../utils/test_lus2lic_no_node should_work/cond01.lus
+14. ../utils/test_lus2lic_no_node should_work/speedcontrol.lus
+
 ** TODO lic2c : le jour ou on genere du code C, y'a peut-etre des trucs a recuperer
    - State "TODO"       from ""           [2012-12-10 Mon 14:32]
 chez Cedric  Pasteur qui a  une implementation pour optimiser  la maj
@@ -67,55 +106,6 @@ exemple basé sur un compteur.
 [...] sauf qu'en fait, a fonstion de hash renvoie toujours la meme valeur (bug)
 et que ca marche tres bien. Ce qui prouve bien que ca ne sert a rien cette affaire...
 
-** TODO divergence -exec et -2c
-   - State "TODO"       from ""           [2014-07-11 Fri 12:02]
-
-grep "FAIL:" lus2lic.log | grep "exec" | grep "\-2c" | sed s/'FAIL: Try to compare lus2lic -exec and -2c:'/-/
-
-1. ../utils/compare_exec_and_2c should_work/test_node_expand2.lus
-  -> -2110104000 est n'est pas un entier acceptable pour lutin sur les machines 32 bits...
-
-2. ../utils/compare_exec_and_2c should_work/test_node_expand.lus
-  -> idem
-
-3. ../utils/compare_exec_and_2c should_work/sincos.lus
-  -> une erreur en mode -exec au step 2 (nil)
-
-4. ../utils/compare_exec_and_2c should_work/integrator.lus
-  -> pb d'arrondi (1305025.02198 vs 1305025.)
-
-5. ../utils/compare_exec_and_2c should_work/PCOND1.lus
-   -> pb d'arrondi / 32bits
-
-6. ../utils/compare_exec_and_2c should_work/multipar.lus
-  -> pb d'arrondi / 32bits
-
-7. ../utils/compare_exec_and_2c should_work/array_concat.lus
-  -> le a.out fait un segmentation fault
-
-
-** TODO Divergences -exec et ecexe
-   - State "TODO"       from ""           [2014-07-11 Fri 16:54]
-
- grep "FAIL:" lus2lic.log | grep "exec" | grep "ecexe" | sed s/'FAIL: Try to compare lus2lic -exec and ecexe:'/-/
-
-1. ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus
-2. ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus
-3. ../utils/test_lus2lic_no_node should_work/test_node_expand.lus
-4. ../utils/test_lus2lic_no_node should_work/modes3x2_v2.lus
-5. ../utils/test_lus2lic_no_node should_work/filter.lus
-6. ../utils/test_lus2lic_no_node should_work/sincos.lus
-7. ../utils/test_lus2lic_no_node should_work/integrator.lus
-8. ../utils/test_lus2lic_no_node should_work/PCOND1.lus
-9. ../utils/test_lus2lic_no_node should_work/multipar.lus
-10. ../utils/test_lus2lic_no_node should_work/activation2.lus
-11. ../utils/test_lus2lic_no_node should_work/bob.lus
-12. ../utils/test_lus2lic_no_node should_work/test_condact.lus
-13. ../utils/test_lus2lic_no_node should_work/activation1.lus
-14. ../utils/test_lus2lic_no_node should_work/Gyroscope.lus
-15. ../utils/test_lus2lic_no_node should_work/cond01.lus
-16. ../utils/test_lus2lic_no_node should_work/speedcontrol.lus
-
 * Packages, modeles, etc.
 ** STARTED Il ne detecte plus les erreurs de type lors d'instanciation de noeuds
    - State "STARTED"    from "TODO"       [2013-01-28 Mon 17:02]
@@ -225,6 +215,8 @@ file:~/lus2lic/utils/test_lus2lic_no_node
 - lus2lic -2c should_work/speedcontrol.lus -n speedcontrol
 
 * Divers
+** TODO 
+   - State "TODO"       from ""           [2014-08-19 Tue 15:45]
 ** TODO Traiter TOUS les warnings !!!
    - State "TODO"       from ""           [2014-08-13 Wed 17:33]
 ** TODO pb d'horloge