diff --git a/src/h2.c b/src/h2.c
index 32c1ef1..990d602 100644
--- a/src/h2.c
+++ b/src/h2.c
@@ -736,8 +736,7 @@
 			if (tl > fs)
 				goto fail;
 
-			htx_set_blk_value_len(blk, tl);
-			htx->data += vl+2;
+			htx_change_blk_value_len(htx, blk, tl);
 			*(char *)(htx_get_blk_ptr(htx, blk) + bs + 0) = ';';
 			*(char *)(htx_get_blk_ptr(htx, blk) + bs + 1) = ' ';
 			memcpy(htx_get_blk_ptr(htx, blk) + bs + 2, list[ck].v.ptr, vl);
diff --git a/src/http_htx.c b/src/http_htx.c
index 7322b33..bc26e5b 100644
--- a/src/http_htx.c
+++ b/src/http_htx.c
@@ -461,10 +461,7 @@
 	}
 	/* Update the block content and its len */
 	memmove(start, start+len, v.len-len);
-	htx_set_blk_value_len(blk, v.len-len);
-
-	/* Update HTX msg */
-	htx->data -= len;
+	htx_change_blk_value_len(htx, blk, v.len-len);
 
 	/* Finally update the ctx */
 	ctx->value.ptr = start;
diff --git a/src/htx.c b/src/htx.c
index bfd136f..8149259 100644
--- a/src/htx.c
+++ b/src/htx.c
@@ -406,15 +406,8 @@
 			offset -= sz;
 			continue;
 		}
-		if (type == HTX_BLK_DATA) {
-			htx_set_blk_value_len(blk, offset);
-			htx->data -= (sz - offset);
-
-			if (blk->addr+sz == htx->tail_addr)
-				htx->tail_addr -= offset;
-			else if (blk->addr+sz == htx->head_addr)
-				htx->head_addr -= offset;
-		}
+		if (type == HTX_BLK_DATA)
+			htx_change_blk_value_len(htx, blk, offset);
 		offset = 0;
 	}
 	while (blk)
@@ -522,14 +515,7 @@
 	/* Append data and update the block itself */
 	ptr = htx_get_blk_ptr(htx, tailblk);
 	memcpy(ptr+sz, data.ptr, len);
-	htx_set_blk_value_len(tailblk, sz+len);
-
-	/* Update HTTP message */
-	htx->data += len;
-	if (tailblk->addr+sz == htx->tail_addr)
-		htx->tail_addr += len;
-	else if (tailblk->addr+sz == htx->head_addr)
-		htx->head_addr += len;
+	htx_change_blk_value_len(htx, tailblk, sz+len);
 
 	if (data.len == len) {
 		blk = tailblk;
@@ -988,14 +974,7 @@
 	/* Append data and update the block itself */
 	ptr = htx_get_blk_ptr(htx, tailblk);
 	memcpy(ptr + sz, data.ptr, len);
-	htx_set_blk_value_len(tailblk, sz + len);
-
-	/* Update HTTP message */
-	htx->data += len;
-	if (tailblk->addr+sz == htx->tail_addr)
-		htx->tail_addr += len;
-	else if (tailblk->addr+sz == htx->head_addr)
-		htx->head_addr += len;
+	htx_change_blk_value_len(htx, tailblk, sz+len);
 
 	BUG_ON((int32_t)htx->tail_addr < 0);
 	BUG_ON((int32_t)htx->head_addr < 0);
diff --git a/src/proto_htx.c b/src/proto_htx.c
index 7f50136..d821e38 100644
--- a/src/proto_htx.c
+++ b/src/proto_htx.c
@@ -4314,10 +4314,8 @@
 			hdr_end = (preserve_hdr ? del_from : hdr_beg);
 		}
 		if ((hdr_end - hdr_beg) != ctx.value.len) {
-			if (hdr_beg != hdr_end) {
-				htx_set_blk_value_len(ctx.blk, hdr_end - hdr_beg);
-				htx->data -= ctx.value.len - (hdr_end - hdr_beg);
-			}
+			if (hdr_beg != hdr_end)
+				htx_change_blk_value_len(htx, ctx.blk, hdr_end - hdr_beg);
 			else
 				http_remove_header(htx, &ctx);
 		}
@@ -4495,8 +4493,7 @@
 				next         += stripped_before;
 				hdr_end      += stripped_before;
 
-				htx_set_blk_value_len(ctx.blk, hdr_end - hdr_beg);
-				htx->data -= ctx.value.len - (hdr_end - hdr_beg);
+				htx_change_blk_value_len(htx, ctx.blk, hdr_end - hdr_beg);
 				ctx.value.len = hdr_end - hdr_beg;
 			}
 
