diff --git a/include/proto/h1.h b/include/proto/h1.h
index 05d1877..d8b90cb 100644
--- a/include/proto/h1.h
+++ b/include/proto/h1.h
@@ -143,16 +143,16 @@
 /* This function may be called only in HTTP_MSG_CHUNK_CRLF. It reads the CRLF or
  * a possible LF alone at the end of a chunk. The caller should adjust msg->next
  * in order to include this part into the next forwarding phase.  Note that the
- * caller must ensure that ->p points to the first byte to parse.  It returns
- * the number of bytes parsed on success, so the caller can set msg_state to
- * HTTP_MSG_CHUNK_SIZE. If not enough data are available, the function does not
+ * caller must ensure that head+start points to the first byte to parse.  It
+ * returns the number of bytes parsed on success, so the caller can set msg_state
+ * to HTTP_MSG_CHUNK_SIZE. If not enough data are available, the function does not
  * change anything and returns zero. Otherwise it returns a negative value
  * indicating the error positionn relative to <stop>. Note: this function is
  * designed to parse wrapped CRLF at the end of the buffer.
  */
 static inline int h1_skip_chunk_crlf(const struct buffer *buf, int start, int stop)
 {
-	const char *ptr = b_ptr(buf, start);
+	const char *ptr = b_peek(buf, start);
 	int bytes = 1;
 
 	/* NB: we'll check data availabilty at the end. It's not a
@@ -162,15 +162,15 @@
 	if (*ptr == '\r') {
 		bytes++;
 		ptr++;
-		if (ptr >= buf->data + buf->size)
+		if (ptr >= b_wrap(buf))
 			ptr = buf->data;
 	}
 
 	if (bytes > stop - start)
 		return 0;
 
-	if (*ptr != '\n')
-		return -buffer_count(buf, ptr, b_ptr(buf, stop));
+	if (*ptr != '\n') // negative position to stop
+		return ptr - __b_peek(buf, stop);
 
 	return bytes;
 }
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 33c25d3..98c97d8 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -3179,8 +3179,7 @@
 		break;
 	default:          /* te:chunked : parse chunks */
 		if (h1m->state == HTTP_MSG_CHUNK_CRLF) {
-			// FIXME: this one still uses the old buffer API and ignores <ofs>
-			ret = h1_skip_chunk_crlf(buf, -max, 0);
+			ret = h1_skip_chunk_crlf(buf, ofs, ofs + max);
 			if (!ret)
 				goto end;
 
diff --git a/src/proto_http.c b/src/proto_http.c
index 5d7fc98..3904b63 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -6353,7 +6353,7 @@
 
 		case HTTP_MSG_CHUNK_CRLF:
 			/* we want the CRLF after the data */
-			ret = h1_skip_chunk_crlf(chn->buf, msg->next, chn->buf->i);
+			ret = h1_skip_chunk_crlf(chn->buf, co_data(chn) + msg->next, b_data(chn->buf));
 			if (ret == 0)
 				goto missing_data_or_waiting;
 			if (ret < 0) {
