diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c
index 5ddb496007a2074e7581ad6089aca7c4fda0ce56..7fbaa53abc297c342d9687ada805a2e20df1d3b7 100644
--- a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c
+++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c
@@ -427,7 +427,7 @@ void set_application_segment(memory_segment *seg, uintptr_t start,
   seg->name = name;
   seg->start = start;
   seg->size = size;
-  seg->end = seg->start + seg->size;
+  seg->end = seg->start + seg->size - 1;
   seg->mspace = msp;
   seg->parent = NULL;
   seg->shadow_ratio = 0;
@@ -442,7 +442,7 @@ void set_shadow_segment(memory_segment *seg, memory_segment *parent,
   seg->size = parent->size/seg->shadow_ratio;
   seg->mspace = eacsl_create_mspace(seg->size + SHADOW_SEGMENT_PADDING, 0);
   seg->start = (uintptr_t)eacsl_mspace_malloc(seg->mspace,1);
-  seg->end = seg->start + seg->size;
+  seg->end = seg->start + seg->size - 1;
   seg->shadow_offset = parent->start - seg->start;
 }