diff --git a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h
index d0aa33158b84ff321386557dc5dec01a3c9efdbb..061cbb4be839944eb0c64674b2171e536319282f 100644
--- a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h
+++ b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h
@@ -28,8 +28,6 @@
 #ifndef E_ACSL_BITTREE
 #define E_ACSL_BITTREE
 
-#include <stdbool.h>
-
 #include "e_acsl_malloc.h"
 #include "e_acsl_syscall.h"
 #include "e_acsl_printf.h"
@@ -253,7 +251,7 @@ static void bt_insert (bt_block * ptr) {
 
   new_leaf = private_malloc(sizeof(bt_node));
   DASSERT(new_leaf != NULL);
-  new_leaf->is_leaf = true;
+  new_leaf->is_leaf = 1;
   new_leaf->addr = ptr->ptr;
   new_leaf->mask = Tmasks[WORDBITS]; /* ~0ul */
   new_leaf->left = NULL;
@@ -269,7 +267,7 @@ static void bt_insert (bt_block * ptr) {
     DASSERT(sibling != NULL);
     parent = private_malloc(sizeof(bt_node));
     DASSERT(parent != NULL);
-    parent->is_leaf = false;
+    parent->is_leaf = 0;
     parent->addr = sibling->addr & new_leaf->addr;
     /*parent->mask = mask(sibling->addr & sibling->mask, ptr->ptr);*/
     parent->leaf = NULL;
diff --git a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_api.h b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_api.h
index bd530c7bd2fc4010dfbfc7d4d4b5a85125e8d849..5b657ba5e3fd898f3b436a1725c13e235acb21de 100644
--- a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_api.h
+++ b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_api.h
@@ -29,7 +29,6 @@
 #define E_ACSL_BITTREE_API
 
 #include "stdlib.h"
-#include "stdbool.h"
 
 /*! \brief Structure representing an allocated memory block */
 struct bt_block {
@@ -37,8 +36,8 @@ struct bt_block {
   size_t size; //!< Block length (in bytes)
   unsigned char * init_ptr; //!< Per-bit initialization
   size_t init_bytes; //!< Number of initialized bytes within a block
-  _Bool is_readonly; //!< True if a block is marked read-only
-  _Bool is_freeable; //!< True if a block can be de-allocated using `free`
+  int is_readonly; //!< True if a block is marked read-only
+  int is_freeable; //!< True if a block can be de-allocated using `free`
 #ifdef E_ACSL_DEBUG
   size_t line; //!< Line number where this block was recorded
   char* file; //!< File name where this block was recorded
@@ -53,7 +52,7 @@ typedef struct bt_block bt_block;
 
 /*! \brief Structure representing a bittree node */
 struct bt_node {
-  _Bool is_leaf;
+  int is_leaf;
   size_t addr, mask;
   struct bt_node * left, * right, * parent;
   bt_block * leaf;
diff --git a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c
index d582bada43fd03200bdeecec3e274de97d17d867..13e51eeea7b336234720cbf3cecd77c0da939f93 100644
--- a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c
+++ b/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c
@@ -206,7 +206,7 @@ void mark_readonly(void * ptr) {
   tmp = bt_lookup(ptr);
   if (tmp == NULL)
     return;
-  tmp->is_readonly = true;
+  tmp->is_readonly = 1;
 }
 /* }}} */
 
@@ -217,10 +217,10 @@ void mark_readonly(void * ptr) {
 int freeable(void* ptr) {
   bt_block * tmp;
   if(ptr == NULL)
-    return false;
+    return 0;
   tmp = bt_lookup(ptr);
   if(tmp == NULL)
-    return false;
+    return 0;
   return tmp->is_freeable;
 }
 
@@ -229,14 +229,14 @@ int initialized(void * ptr, size_t size) {
   unsigned i;
   bt_block * tmp = bt_find(ptr);
   if(tmp == NULL)
-    return false;
+    return 0;
 
   /* fully uninitialized */
   if(tmp->init_bytes == 0)
-    return false;
+    return 0;
   /* fully initialized */
   if(tmp->init_bytes == tmp->size)
-    return true;
+    return 1;
 
   /* see implementation of function `initialize` for details */
   for(i = 0; i < size; i++) {
@@ -244,9 +244,9 @@ int initialized(void * ptr, size_t size) {
     int byte = offset/8;
     int bit = offset%8;
     if (!checkbit(bit, tmp->init_ptr[byte]))
-      return false;
+      return 0;
   }
-  return true;
+  return 1;
 }
 
 /* return the length (in bytes) of the block containing ptr */
@@ -348,8 +348,8 @@ void* store_block(void* ptr, size_t size) {
     tmp->size = size;
     tmp->init_ptr = NULL;
     tmp->init_bytes = 0;
-    tmp->is_readonly = false;
-    tmp->is_freeable = false;
+    tmp->is_readonly = 0;
+    tmp->is_freeable = 0;
     bt_insert(tmp);
 #ifdef E_ACSL_DEBUG
     tmp->line = 0;
@@ -418,7 +418,7 @@ void* bittree_malloc(size_t size) {
   if (res) {
     bt_block * new_block = store_block(res, size);
     heap_allocation_size += size;
-    new_block->is_freeable = true;
+    new_block->is_freeable = 1;
   }
   return res;
 }
@@ -539,7 +539,7 @@ void* bittree_realloc(void* ptr, size_t size) {
     }
   }
   tmp->size = size;
-  tmp->is_freeable = true;
+  tmp->is_freeable = 1;
   heap_allocation_size += size;
   return (void*)tmp->ptr;
 }