diff --git a/include/proto/session.h b/include/proto/session.h
index fd62dfd..2dc3d83 100644
--- a/include/proto/session.h
+++ b/include/proto/session.h
@@ -60,7 +60,7 @@
 static inline void session_offer_buffers();
 int session_alloc_work_buffer(struct session *s);
 void session_release_buffers(struct session *s);
-int session_alloc_recv_buffer(struct session *s, struct buffer **buf);
+int session_alloc_recv_buffer(struct channel *chn);
 
 /* sets the stick counter's entry pointer */
 static inline void stkctr_set_entry(struct stkctr *stkctr, struct stksess *entry)
diff --git a/src/hlua.c b/src/hlua.c
index 78f6773..02e3e31 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -1440,7 +1440,7 @@
 	 * the request buffer if its not required.
 	 */
 	if (socket->s->req.buf->size == 0) {
-		if (!session_alloc_recv_buffer(socket->s, &socket->s->req.buf)) {
+		if (!session_alloc_recv_buffer(&socket->s->req)) {
 			socket->s->si[0].flags |= SI_FL_WAIT_ROOM;
 			goto hlua_socket_write_yield_return;
 		}
@@ -2324,7 +2324,7 @@
 	 * the request buffer if its not required.
 	 */
 	if (chn->chn->buf->size == 0) {
-		if (!session_alloc_recv_buffer(chn->s, &chn->chn->buf)) {
+		if (!session_alloc_recv_buffer(chn->chn)) {
 			chn_prod(chn->chn)->flags |= SI_FL_WAIT_ROOM;
 			WILL_LJMP(hlua_yieldk(L, 0, 0, hlua_channel_send_yield, TICK_ETERNITY, 0));
 		}
diff --git a/src/session.c b/src/session.c
index 2675847..94fc875 100644
--- a/src/session.c
+++ b/src/session.c
@@ -670,24 +670,26 @@
 	}
 }
 
-/* Allocates a single buffer for session <s>, but only if it's guaranteed that
- * it's not the last available buffer. To be called at the beginning of recv()
- * callbacks to ensure that the required buffers are properly allocated. If the
- * buffer is the session's request buffer, an extra control is made so that we
- * always keep <tune.buffers.reserved> buffers available after this allocation.
- * In all circumstances we leave at least 2 buffers so that any later call from
- * process_session() has a chance to succeed. The response buffer is not bound
- * to this control. Returns 0 in case of failure, non-zero otherwise.
+/* Allocates a receive buffer for channel <chn>, but only if it's guaranteed
+ * that it's not the last available buffer or it's the response buffer. Unless
+ * the buffer is the response buffer, an extra control is made so that we always
+ * keep <tune.buffers.reserved> buffers available after this allocation. To be
+ * called at the beginning of recv() callbacks to ensure that the required
+ * buffers are properly allocated. Returns 0 in case of failure, non-zero
+ * otherwise.
  */
-int session_alloc_recv_buffer(struct session *s, struct buffer **buf)
+int session_alloc_recv_buffer(struct channel *chn)
 {
+	struct session *s;
 	struct buffer *b;
 	int margin = 0;
 
-	if (buf == &s->req.buf)
+	if (!(chn->flags & CF_ISRESP))
 		margin = global.tune.reserved_bufs;
 
-	b = b_alloc_margin(buf, margin);
+	s = chn_sess(chn);
+
+	b = b_alloc_margin(&chn->buf, margin);
 	if (b)
 		return 1;
 
diff --git a/src/stream_interface.c b/src/stream_interface.c
index 9912df0..1ba509e 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -1185,7 +1185,7 @@
 	}
 
 	/* now we'll need a buffer */
-	if (!session_alloc_recv_buffer(si_sess(si), &ic->buf)) {
+	if (!session_alloc_recv_buffer(ic)) {
 		si->flags |= SI_FL_WAIT_ROOM;
 		goto end_recv;
 	}
