diff --git a/src/http_htx.c b/src/http_htx.c
index e8420a9..cffbbff 100644
--- a/src/http_htx.c
+++ b/src/http_htx.c
@@ -1514,7 +1514,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1536,7 +1536,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1558,7 +1558,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1580,7 +1580,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1602,7 +1602,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1624,7 +1624,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1647,7 +1647,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1673,7 +1673,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1710,7 +1710,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1748,7 +1748,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1801,7 +1801,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1846,7 +1846,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
@@ -1891,7 +1891,7 @@
 		return 0;
 
 	chn = ((smp->opt & SMP_OPT_DIR) == SMP_OPT_DIR_RES) ? &smp->strm->res : &smp->strm->req;
-	htx = smp_prefetch_htx(smp, chn, 0);
+	htx = smp_prefetch_htx(smp, chn, NULL, 0);
 	if (!htx)
 		return 0;
 
