diff --git a/include/common/hpack-tbl.h b/include/common/hpack-tbl.h
index bb1ac06..44c0cc1 100644
--- a/include/common/hpack-tbl.h
+++ b/include/common/hpack-tbl.h
@@ -32,6 +32,7 @@
 #include <common/config.h>
 #include <common/http-hdr.h>
 #include <common/ist.h>
+#include <common/memory.h>
 
 /* Dynamic Headers Table, usable for tables up to 4GB long and values of 64kB-1.
  * The model can be improved by using offsets relative to the table entry's end
@@ -133,6 +134,7 @@
 /* static header table as in RFC7541 Appendix A. [0] unused. */
 #define HPACK_SHT_SIZE 62
 extern const struct http_hdr hpack_sht[HPACK_SHT_SIZE];
+extern struct pool_head *pool_head_hpack_tbl;
 
 extern int __hpack_dht_make_room(struct hpack_dht *dht, unsigned int needed);
 extern int hpack_dht_insert(struct hpack_dht *dht, struct ist name, struct ist value);
@@ -233,23 +235,24 @@
 	dht->used = 0;
 }
 
-/* allocate a dynamic headers table of <size> bytes and return it initialized */
-static inline struct hpack_dht *hpack_dht_alloc(uint32_t size)
+/* allocate a dynamic headers table from the pool and return it initialized */
+static inline struct hpack_dht *hpack_dht_alloc()
 {
 	struct hpack_dht *dht;
 
-	dht = malloc(size);
-	if (!dht)
-		return dht;
+	if (unlikely(!pool_head_hpack_tbl))
+		return NULL;
 
-	hpack_dht_init(dht, size);
+	dht = pool_alloc(pool_head_hpack_tbl);
+	if (dht)
+		hpack_dht_init(dht, pool_head_hpack_tbl->size);
 	return dht;
 }
 
 /* free a dynamic headers table */
 static inline void hpack_dht_free(struct hpack_dht *dht)
 {
-	free(dht);
+	pool_free(pool_head_hpack_tbl, dht);
 }
 
 #endif /* _COMMON_HPACK_TBL_H */
