diff --git a/include/common/memory.h b/include/common/memory.h
index d21a176..17675a2 100644
--- a/include/common/memory.h
+++ b/include/common/memory.h
@@ -78,6 +78,7 @@
 	void **free_list;
 #ifdef CONFIG_HAP_LOCKLESS_POOLS
 	uintptr_t seq;
+	HA_RWLOCK_T flush_lock;
 #else
 	__decl_hathreads(HA_SPINLOCK_T lock); /* the spin lock */
 #endif
@@ -221,6 +222,7 @@
 	cmp.seq = pool->seq;
 	__ha_barrier_load();
 
+	HA_RWLOCK_RDLOCK(POOL_LOCK, &pool->flush_lock);
 	cmp.free_list = pool->free_list;
 	do {
 		if (cmp.free_list == NULL)
@@ -230,6 +232,7 @@
 		new.free_list = *POOL_LINK(pool, cmp.free_list);
 	} while (HA_ATOMIC_DWCAS((void *)&pool->free_list, (void *)&cmp, (void *)&new) == 0);
 	__ha_barrier_atomic_store();
+	HA_RWLOCK_RDUNLOCK(POOL_LOCK, &pool->flush_lock);
 
 	_HA_ATOMIC_ADD(&pool->used, 1);
 #ifdef DEBUG_MEMORY_POOLS
diff --git a/src/memory.c b/src/memory.c
index 07e3428..409b4e5 100644
--- a/src/memory.c
+++ b/src/memory.c
@@ -141,6 +141,8 @@
 		}
 #ifndef CONFIG_HAP_LOCKLESS_POOLS
 		HA_SPIN_INIT(&pool->lock);
+#else
+		HA_RWLOCK_INIT(&pool->flush_lock);
 #endif
 	}
 	pool->users++;
@@ -223,6 +225,7 @@
 
 	if (!pool)
 		return;
+	HA_RWLOCK_WRLOCK(POOL_LOCK, &pool->flush_lock);
 	do {
 		cmp.free_list = pool->free_list;
 		cmp.seq = pool->seq;
@@ -230,6 +233,7 @@
 		new.seq = cmp.seq + 1;
 	} while (!_HA_ATOMIC_DWCAS(&pool->free_list, &cmp, &new));
 	__ha_barrier_atomic_store();
+	HA_RWLOCK_WRUNLOCK(POOL_LOCK, &pool->flush_lock);
 	next = cmp.free_list;
 	while (next) {
 		temp = next;
@@ -259,6 +263,7 @@
 		return;
 
 	list_for_each_entry(entry, &pools, list) {
+		HA_RWLOCK_WRLOCK(POOL_LOCK, &entry->flush_lock);
 		while ((int)((volatile int)entry->allocated - (volatile int)entry->used) > (int)entry->minavail) {
 			struct pool_free_list cmp, new;
 
@@ -275,6 +280,7 @@
 			free(cmp.free_list);
 			_HA_ATOMIC_SUB(&entry->allocated, 1);
 		}
+		HA_RWLOCK_WRUNLOCK(POOL_LOCK, &entry->flush_lock);
 	}
 
 	_HA_ATOMIC_STORE(&recurse, 0);
@@ -616,7 +622,7 @@
 		else
 			ret = 0;
 	}
-	HA_SPIN_LOCK(OTHER_LOCK, &mem_fail_lock);
+	HA_SPIN_LOCK(POOL_LOCK, &mem_fail_lock);
 	n = snprintf(&mem_fail_str[mem_fail_cur_idx * MEM_FAIL_MAX_CHAR],
 	    MEM_FAIL_MAX_CHAR - 2,
 	    "%d %.18s %d %d", mem_fail_cur_idx, pool->name, ret, tid);
@@ -629,7 +635,7 @@
 	mem_fail_cur_idx++;
 	if (mem_fail_cur_idx == MEM_FAIL_MAX_STR)
 		mem_fail_cur_idx = 0;
-	HA_SPIN_UNLOCK(OTHER_LOCK, &mem_fail_lock);
+	HA_SPIN_UNLOCK(POOL_LOCK, &mem_fail_lock);
 	return ret;
 
 }
