diff --git a/src/compression.c b/src/compression.c
index 09bc4a6..3d6085e 100644
--- a/src/compression.c
+++ b/src/compression.c
@@ -412,6 +412,7 @@
 	struct comp_ctx *ctx = opaque;
 	static char round = 0; /* order in deflateInit2 */
 	void *buf = NULL;
+	struct pool_head *pool = NULL;
 
 	if (global.maxzlibmem > 0 && (global.maxzlibmem - zlib_used_memory) < (long)(items * size))
 		goto end;
@@ -420,35 +421,40 @@
 		case 0:
 			if (zlib_pool_deflate_state == NULL)
 				zlib_pool_deflate_state = create_pool("zlib_state", size * items, MEM_F_SHARED);
-			ctx->zlib_deflate_state = buf = pool_alloc2(zlib_pool_deflate_state);
+			pool = zlib_pool_deflate_state;
+			ctx->zlib_deflate_state = buf = pool_alloc2(pool);
 		break;
 
 		case 1:
 			if (zlib_pool_window == NULL)
 				zlib_pool_window = create_pool("zlib_window", size * items, MEM_F_SHARED);
-			ctx->zlib_window = buf = pool_alloc2(zlib_pool_window);
+			pool = zlib_pool_window;
+			ctx->zlib_window = buf = pool_alloc2(pool);
 		break;
 
 		case 2:
 			if (zlib_pool_prev == NULL)
 				zlib_pool_prev = create_pool("zlib_prev", size * items, MEM_F_SHARED);
-			ctx->zlib_prev = buf = pool_alloc2(zlib_pool_prev);
+			pool = zlib_pool_prev;
+			ctx->zlib_prev = buf = pool_alloc2(pool);
 		break;
 
 		case 3:
 			if (zlib_pool_head == NULL)
 				zlib_pool_head = create_pool("zlib_head", size * items, MEM_F_SHARED);
-			ctx->zlib_head = buf = pool_alloc2(zlib_pool_head);
+			pool = zlib_pool_head;
+			ctx->zlib_head = buf = pool_alloc2(pool);
 		break;
 
 		case 4:
 			if (zlib_pool_pending_buf == NULL)
 				zlib_pool_pending_buf = create_pool("zlib_pending_buf", size * items, MEM_F_SHARED);
-			ctx->zlib_pending_buf = buf = pool_alloc2(zlib_pool_pending_buf);
+			pool = zlib_pool_pending_buf;
+			ctx->zlib_pending_buf = buf = pool_alloc2(pool);
 		break;
 	}
 	if (buf != NULL)
-		zlib_used_memory += items * size;
+		zlib_used_memory += pool->size;
 
 end:
 
