diff --git a/src/cache.c b/src/cache.c
index c1e6bcc..1265df3 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -224,7 +224,7 @@
 				c_adv(msg->chn, st->hdrs_len);
 				ret = shctx_row_data_append(shctx,
 							    st->first_block,
-							    (unsigned char *)bi_ptr(msg->chn->buf),
+							    (unsigned char *)ci_head(msg->chn),
 							    MIN(ci_contig_data(msg->chn), len - st->hdrs_len));
 				/* Rewind the buffer to forward all data */
 				c_rew(msg->chn, st->hdrs_len);
diff --git a/src/flt_http_comp.c b/src/flt_http_comp.c
index f26b28b..2084397 100644
--- a/src/flt_http_comp.c
+++ b/src/flt_http_comp.c
@@ -207,7 +207,7 @@
 
 		c_adv(chn, *nxt);
 		block = ci_contig_data(chn);
-		memcpy(bi_end(tmpbuf), bi_ptr(buf), block);
+		memcpy(bi_end(tmpbuf), ci_head(chn), block);
 		if (len > block)
 			memcpy(bi_end(tmpbuf)+block, buf->data, len-block);
 		c_rew(chn, *nxt);
@@ -649,7 +649,7 @@
 	block2 = data_process_len - block1;
 
 	/* compressors return < 0 upon error or the amount of bytes read */
-	consumed_data = st->comp_algo->add_data(st->comp_ctx, bi_ptr(in), block1, out);
+	consumed_data = st->comp_algo->add_data(st->comp_ctx, b_peek(in, in->o), block1, out);
 	if (consumed_data != block1 || !block2)
 		goto end;
 	consumed_data = st->comp_algo->add_data(st->comp_ctx, in->data, block2, out);
@@ -766,7 +766,7 @@
 	c_adv(chn, st->consumed);
 	if (ib->i > 0) {
 		left = ci_contig_data(chn);
-		memcpy(ob->p + ob->i, bi_ptr(ib), left);
+		memcpy(ob->p + ob->i, ci_head(chn), left);
 		ob->i += left;
 		if (ib->i - left) {
 			memcpy(ob->p + ob->i, ib->data, ib->i - left);
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 2f41c6f..b7b98aa 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -2780,7 +2780,7 @@
 		if (h2c->dbuf->i < 1)
 			return 0;
 
-		h2c->dpl = *(uint8_t *)bi_ptr(h2c->dbuf);
+		h2c->dpl = *(uint8_t *)b_head(h2c->dbuf);
 		if (h2c->dpl >= h2c->dfl) {
 			/* RFC7540#6.1 : pad length = length of frame payload or greater */
 			h2c_error(h2c, H2_ERR_PROTOCOL_ERROR);
