diff --git a/src/plugins/e-acsl/new_typing.ml b/src/plugins/e-acsl/new_typing.ml
index 15b09a0af35b9d37a3993d9e4686a82d222e0f02..a7ae7dbb5ba061576d8f2b2504c8c24380a34517 100644
--- a/src/plugins/e-acsl/new_typing.ml
+++ b/src/plugins/e-acsl/new_typing.ml
@@ -61,6 +61,10 @@ let typ_of_integer_ty = function
 
 let c_int = C_type IInt
 
+let size_t () = match Cil.theMachine.Cil.typeOfSizeOf with
+  | TInt(kind, _) -> C_type kind
+  | _ -> assert false
+
 include Datatype.Make
 (struct
   type t = integer_ty
@@ -302,15 +306,10 @@ let rec type_term env ~ctx t =
       Other
 
     | TBinOp ((PlusPI | IndexPI | MinusPI), t1, t2) ->
-(*      Options.feedback "BIN PI %a ; %a" Printer.pp_term t1 Printer.pp_term t2; (* HERE *)*)
       (* it is a pointer, as well as [t1], while [t2] is a size_t.
          Both [t1] and [t2] must be typed. *)
       ignore (type_term env ~ctx:Other t1);
-      let size_t_kind = match Cil.theMachine.Cil.typeOfSizeOf with
-        | TInt(kind, _) -> kind
-        | _ -> assert false
-      in
-      ignore (type_term env ~ctx:(C_type size_t_kind) t2);
+      ignore (type_term env ~ctx:(size_t ()) t2);
       Other
 
     | Tapp (_,_,_) -> Error.not_yet "logic function application"
@@ -345,9 +344,8 @@ and type_term_offset env = function
   | TField(_, toff)
   | TModel(_, toff) -> type_term_offset env toff
   | TIndex(t, toff) ->
-    (* HERE: Other est faux ? *)
-    Options.feedback "INDEX";
-    ignore (type_term env ~ctx:Other t);
+    (* [t] is an array index which must fits into size_t *)
+    ignore (type_term env ~ctx:(size_t ()) t);
     type_term_offset env toff
 
 let rec type_predicate_named env p =
diff --git a/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle b/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle
index 156fd24a1dd5319903f4652e0972c4cb1a0e33f4..fbc5d522f1b971c974b711342f2879c2cb0aa0bc 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle
+++ b/src/plugins/e-acsl/tests/bts/oracle/bts1399.res.oracle
@@ -5,13 +5,15 @@ tests/bts/bts1399.c:22:[e-acsl] warning: E-ACSL construct `complete behaviors' i
                   Ignoring annotation.
 tests/bts/bts1399.c:22:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported.
                   Ignoring annotation.
-FRAMAC_SHARE/libc/stdlib.h:178:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
+FRAMAC_SHARE/libc/stdlib.h:179:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
                   Ignoring annotation.
 FRAMAC_SHARE/libc/stdlib.h:178:[e-acsl] warning: E-ACSL construct `\allocate' is not yet supported. Ignoring annotation.
 FRAMAC_SHARE/libc/stdlib.h:178:[e-acsl] warning: E-ACSL construct `complete behaviors' is not yet supported.
                   Ignoring annotation.
 FRAMAC_SHARE/libc/stdlib.h:178:[e-acsl] warning: E-ACSL construct `disjoint behaviors' is not yet supported.
                   Ignoring annotation.
+FRAMAC_SHARE/libc/stdlib.h:178:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
+                  Ignoring annotation.
 FRAMAC_SHARE/libc/stdlib.h:161:[e-acsl] warning: E-ACSL construct `logic function application' is not yet supported.
                   Ignoring annotation.
 FRAMAC_SHARE/libc/stdlib.h:161:[e-acsl] warning: E-ACSL construct `assigns clause in behavior' is not yet supported.
diff --git a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c
index 233878777882dc8f0c131b34d5bb0ed4db0cd2ab..eec556a814892f9a85a5d4dfa3ea30e86cd4504b 100644
--- a/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c
+++ b/src/plugins/e-acsl/tests/bts/oracle/gen_bts1399.c
@@ -25,7 +25,7 @@ int main(void)
                     (char *)"mem_access: \\valid_read(&state->bitsInQueue)",
                     22);
     __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& state->dataQueue[
-                                                    state->bitsInQueue / (unsigned int)8]),
+                                                    state->bitsInQueue / 8]),
                                                     sizeof(unsigned char __attribute__((
                                                     __aligned__(32)))));
     __e_acsl_assert(! __gen_e_acsl_initialized,(char *)"Assertion",
diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_base_addr.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_base_addr.c
index 8363cb460ba289cab38856923fa012437eb58d0d..14aba6b8cd0dce558d00480d07d29297a9b68ef3 100644
--- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_base_addr.c
+++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_base_addr.c
@@ -48,7 +48,7 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_3;
     void *__gen_e_acsl_base_addr_4;
-    __gen_e_acsl_base_addr_3 = __e_acsl_base_addr((void *)(& A[3]));
+    __gen_e_acsl_base_addr_3 = __e_acsl_base_addr((void *)(& A[(unsigned long)3]));
     __gen_e_acsl_base_addr_4 = __e_acsl_base_addr((void *)PA);
     __e_acsl_assert(__gen_e_acsl_base_addr_3 == __gen_e_acsl_base_addr_4,
                     (char *)"Assertion",(char *)"main",
@@ -69,8 +69,8 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_7;
     void *__gen_e_acsl_base_addr_8;
-    __gen_e_acsl_base_addr_7 = __e_acsl_base_addr((void *)(PA + 2));
-    __gen_e_acsl_base_addr_8 = __e_acsl_base_addr((void *)(& A[3]));
+    __gen_e_acsl_base_addr_7 = __e_acsl_base_addr((void *)(PA + (unsigned long)2));
+    __gen_e_acsl_base_addr_8 = __e_acsl_base_addr((void *)(& A[(unsigned long)3]));
     __e_acsl_assert(__gen_e_acsl_base_addr_7 == __gen_e_acsl_base_addr_8,
                     (char *)"Assertion",(char *)"main",
                     (char *)"\\base_addr(PA+2) == \\base_addr(&A[3])",17);
@@ -99,7 +99,7 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_11;
     void *__gen_e_acsl_base_addr_12;
-    __gen_e_acsl_base_addr_11 = __e_acsl_base_addr((void *)(& a[3]));
+    __gen_e_acsl_base_addr_11 = __e_acsl_base_addr((void *)(& a[(unsigned long)3]));
     __gen_e_acsl_base_addr_12 = __e_acsl_base_addr((void *)pa);
     __e_acsl_assert(__gen_e_acsl_base_addr_11 == __gen_e_acsl_base_addr_12,
                     (char *)"Assertion",(char *)"main",
@@ -121,7 +121,7 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_15;
     void *__gen_e_acsl_base_addr_16;
-    __gen_e_acsl_base_addr_15 = __e_acsl_base_addr((void *)(pa + 2));
+    __gen_e_acsl_base_addr_15 = __e_acsl_base_addr((void *)(pa + (unsigned long)2));
     __gen_e_acsl_base_addr_16 = __e_acsl_base_addr((void *)(a));
     __e_acsl_assert(__gen_e_acsl_base_addr_15 == __gen_e_acsl_base_addr_16,
                     (char *)"Assertion",(char *)"main",
@@ -145,7 +145,7 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_19;
     void *__gen_e_acsl_base_addr_20;
-    __gen_e_acsl_base_addr_19 = __e_acsl_base_addr((void *)(pl + 2));
+    __gen_e_acsl_base_addr_19 = __e_acsl_base_addr((void *)(pl + (unsigned long)2));
     __gen_e_acsl_base_addr_20 = __e_acsl_base_addr((void *)(& l));
     __e_acsl_assert(__gen_e_acsl_base_addr_19 == __gen_e_acsl_base_addr_20,
                     (char *)"Assertion",(char *)"main",
@@ -195,8 +195,8 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_27;
     void *__gen_e_acsl_base_addr_28;
-    __gen_e_acsl_base_addr_27 = __e_acsl_base_addr((void *)(p + 1));
-    __gen_e_acsl_base_addr_28 = __e_acsl_base_addr((void *)(pd + 5));
+    __gen_e_acsl_base_addr_27 = __e_acsl_base_addr((void *)(p + (unsigned long)1));
+    __gen_e_acsl_base_addr_28 = __e_acsl_base_addr((void *)(pd + (unsigned long)5));
     __e_acsl_assert(__gen_e_acsl_base_addr_27 == __gen_e_acsl_base_addr_28,
                     (char *)"Assertion",(char *)"main",
                     (char *)"\\base_addr(p+1) == \\base_addr(pd+5)",45);
@@ -205,8 +205,8 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_29;
     void *__gen_e_acsl_base_addr_30;
-    __gen_e_acsl_base_addr_29 = __e_acsl_base_addr((void *)(p + 11));
-    __gen_e_acsl_base_addr_30 = __e_acsl_base_addr((void *)(pd + 1));
+    __gen_e_acsl_base_addr_29 = __e_acsl_base_addr((void *)(p + (unsigned long)11));
+    __gen_e_acsl_base_addr_30 = __e_acsl_base_addr((void *)(pd + (unsigned long)1));
     __e_acsl_assert(__gen_e_acsl_base_addr_29 == __gen_e_acsl_base_addr_30,
                     (char *)"Assertion",(char *)"main",
                     (char *)"\\base_addr(p+11) == \\base_addr(pd+1)",46);
@@ -217,7 +217,7 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_31;
     void *__gen_e_acsl_base_addr_32;
-    __gen_e_acsl_base_addr_31 = __e_acsl_base_addr((void *)(p + 5));
+    __gen_e_acsl_base_addr_31 = __e_acsl_base_addr((void *)(p + (unsigned long)5));
     __gen_e_acsl_base_addr_32 = __e_acsl_base_addr((void *)pd);
     __e_acsl_assert(__gen_e_acsl_base_addr_31 == __gen_e_acsl_base_addr_32,
                     (char *)"Assertion",(char *)"main",
@@ -227,7 +227,7 @@ int main(void)
   {
     void *__gen_e_acsl_base_addr_33;
     void *__gen_e_acsl_base_addr_34;
-    __gen_e_acsl_base_addr_33 = __e_acsl_base_addr((void *)(p - 5));
+    __gen_e_acsl_base_addr_33 = __e_acsl_base_addr((void *)(p - (unsigned long)5));
     __gen_e_acsl_base_addr_34 = __e_acsl_base_addr((void *)pd);
     __e_acsl_assert(__gen_e_acsl_base_addr_33 == __gen_e_acsl_base_addr_34,
                     (char *)"Assertion",(char *)"main",