diff --git a/mempool.cc b/mempool.cc
index ee6675d6fe03d7018f1e19f0ea174f0f4286f225..538681c9306afc331a27c4192d1442502060896e 100644
--- a/mempool.cc
+++ b/mempool.cc
@@ -79,6 +79,7 @@ void pool::free(void* object)
     if (!--header->nalloc) {
         // FIXME: add hysteresis
         free_page(header);
+        _free = nullptr;
     } else {
         obj->next = _free;
         _free = obj;