diff --git a/dbutil.h b/dbutil.h
index 774c3ce83e32d91e50e8816691855dad0f0b0233..cdad9bca5bed1bf03da9db9ab29e5c7456774940 100644
--- a/dbutil.h
+++ b/dbutil.h
@@ -91,7 +91,7 @@ void m_close(int fd);
 void * m_malloc(size_t size);
 void * m_strdup(const char * str);
 void * m_realloc(void* ptr, size_t size);
-#define m_free(X) free(X); (X) = NULL;
+#define m_free(X) do {free(X); (X) = NULL;} while (0); 
 void m_burn(void* data, unsigned int len);
 void setnonblocking(int fd);
 void disallow_core();