diff --git a/openair2/UTIL/MEM/mem_block.c b/openair2/UTIL/MEM/mem_block.c
index 6d1a289f08ea4ac93583a8fb910d6999ac565382..0150ef00cdaf208120828c54840d80545b6908ca 100644
--- a/openair2/UTIL/MEM/mem_block.c
+++ b/openair2/UTIL/MEM/mem_block.c
@@ -61,6 +61,7 @@ uint32_t             counters[14] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 /*
  * initialize all ures
  */
+extern mem_pool  *memBlockVar;
 void           *
 pool_buffer_init (void)
 {
@@ -68,6 +69,7 @@ pool_buffer_init (void)
 
   uint32_t             index, mb_index, pool_index;
   mem_pool       *memory = (mem_pool *) &mem_block_var;
+  memBlockVar=malloc(sizeof(mem_pool));
   int             pool_sizes[14] = { MEM_MNGT_MB0_NB_BLOCKS, MEM_MNGT_MB1_NB_BLOCKS,
                                      MEM_MNGT_MB2_NB_BLOCKS, MEM_MNGT_MB3_NB_BLOCKS,
                                      MEM_MNGT_MB4_NB_BLOCKS, MEM_MNGT_MB5_NB_BLOCKS,
diff --git a/openair2/UTIL/MEM/mem_block.h b/openair2/UTIL/MEM/mem_block.h
index 861e4a8ea469598c034913959c7f6922a9ebef98..18ded1a5990da3297c9abde96dc8615443fe329c 100644
--- a/openair2/UTIL/MEM/mem_block.h
+++ b/openair2/UTIL/MEM/mem_block.h
@@ -178,7 +178,8 @@ typedef struct {
 
 } mem_pool;
 
-mem_pool  mem_block_var;
+mem_pool  *memBlockVar;
+#define mem_block_var (*memBlockVar)
 
 #ifdef __cplusplus
 }