diff --git a/src/block_allocator.c b/src/block_allocator.c
index ddc2b5c96e07c4942516ba6938c4a9cbe541bdca..734bab8de1fd14a4b821c3fcbf17aa0ef12a35af 100644
--- a/src/block_allocator.c
+++ b/src/block_allocator.c
@@ -43,6 +43,15 @@ struct ba_block_header {
     struct ba_block_header * next;
 };
 
+#ifdef HAVE_VALGRIND_MACROS
+# ifndef VALGRIND_CREATE_MEMPOOL
+#  define VALGRIND_CREATE_MEMPOOL(a, b, c)
+#  define VALGRIND_MEMPOOL_ALLOC(a, p, l)    VALGRIND_MAKE_MEM_UNDEFINED((p), (l))
+#  define VALGRIND_MEMPOOL_FREE(a, p)	    VALGRIND_MAKE_MEM_NOACCESS((p), (a)->l.block_size)
+# endif
+#endif
+
+
 static struct ba_page * ba_alloc_page(struct block_allocator * a, int i) {
     struct ba_layout l = ba_get_layout(a, i);
     size_t n = l.offset + l.block_size + sizeof(struct ba_page);
@@ -127,11 +136,6 @@ static void ba_low_alloc(struct block_allocator * a) {
     }
 }
 
-#ifndef VALGRIND_MEMPOOL_ALLOC
-# define VALGRIND_MEMPOOL_ALLOC(a, p, l)    VALGRIND_MAKE_MEM_UNDEFINED((p), (l))
-# define VALGRIND_MEMPOOL_FREE(a, p)	    VALGRIND_MAKE_MEM_NOACCESS((p), (a)->l.block_size)
-#endif
-
 ATTRIBUTE((malloc))
 PMOD_EXPORT void * ba_alloc(struct block_allocator * a) {
     struct ba_page * p = a->pages[a->alloc];