diff --git a/src/plugins/e-acsl/share/e-acsl/memory_model/e_acsl_mmodel.c b/src/plugins/e-acsl/share/e-acsl/memory_model/e_acsl_mmodel.c
index 47ba066ab3ed67db75a4b7caf9de917bb23ecd2b..3a7dc723cd63fe0251ea133a6e26cfed423635e1 100644
--- a/src/plugins/e-acsl/share/e-acsl/memory_model/e_acsl_mmodel.c
+++ b/src/plugins/e-acsl/share/e-acsl/memory_model/e_acsl_mmodel.c
@@ -47,6 +47,13 @@ void __warning(const char* fct_name) {
 }
 
 
+void* __e_acsl_memset (void* dest, int val, size_t len) {
+  unsigned char *ptr = (unsigned char*)dest;
+  while (len-- > 0)
+    *ptr++ = val;
+  return dest;
+}
+
 
 size_t __memory_size = 0;
 /*unsigned cpt_store_block = 0;*/
@@ -154,7 +161,7 @@ void* __realloc(void* ptr, size_t size) {
     else {
       int nb = needed_bytes(size);
       tmp->init_ptr = malloc(nb);
-      memset(tmp->init_ptr, 0xFF, nb);
+      __e_acsl_memset(tmp->init_ptr, 0xFF, nb);
       if(size%8 != 0)
 	tmp->init_ptr[size/8] <<= (8 - size%8);
     }
@@ -221,7 +228,7 @@ void __initialize (void * ptr, size_t size) {
   if(tmp->init_cpt == 0) {
     int nb = needed_bytes(tmp->size);
     tmp->init_ptr = malloc(nb);
-    memset(tmp->init_ptr, 0, nb);
+    __e_acsl_memset(tmp->init_ptr, 0, nb);
   }
 
   for(i = 0; i < size; i++) {