diff --git a/include/common/buffer.h b/include/common/buffer.h
index da65e89..baa8631 100644
--- a/include/common/buffer.h
+++ b/include/common/buffer.h
@@ -105,12 +105,6 @@
 	b->o -= del;
 }
 
-/* Returns the start of the input data in a buffer */
-static inline char *bi_ptr(const struct buffer *b)
-{
-	return b->p;
-}
-
 /* Returns the end of the input data in a buffer (pointer to next
  * insertion point).
  */
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);
