diff --git a/src/mux_h1.c b/src/mux_h1.c
index 2529ccf..4d75785 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -1831,6 +1831,8 @@
 						goto error;
 					}
 					h1m->curr_len -= count;
+					if (!h1m->curr_len)
+						last_data = 1;
 				}
 				if (chn_htx->flags & HTX_FL_EOM) {
 					TRACE_DEVEL("last message block", H1_EV_TX_DATA|H1_EV_TX_BODY, h1c->conn, h1s);
@@ -2128,8 +2130,9 @@
 					TRACE_STATE("1xx response xferred", H1_EV_TX_DATA|H1_EV_TX_HDRS, h1c->conn, h1s);
 				}
 				else {
-					/* EOM flag is set and it is the last block */
-					if (htx_is_unique_blk(chn_htx, blk) && (chn_htx->flags & HTX_FL_EOM)) {
+					/* EOM flag is set or empty payload (C-L to 0) and it is the last block */
+					if (htx_is_unique_blk(chn_htx, blk) &&
+					    ((chn_htx->flags & HTX_FL_EOM) || ((h1m->flags & H1_MF_CLEN) && !h1m->curr_len))) {
 						if (h1m->flags & H1_MF_CHNK) {
 							if (!chunk_memcat(&tmp, "\r\n0\r\n\r\n", 7))
 								goto full;
@@ -2227,8 +2230,11 @@
 						    H1_EV_TX_DATA|H1_EV_TX_BODY, h1c->conn, h1s, 0, (size_t[]){v.len});
 
 			  skip_data:
-				if (h1m->state == H1_MSG_DATA && (h1m->flags & H1_MF_CLEN))
+				if (h1m->state == H1_MSG_DATA && (h1m->flags & H1_MF_CLEN)) {
 					h1m->curr_len -= vlen;
+					if (!h1m->curr_len)
+						last_data = 1;
+				}
 				if (last_data)
 					goto done;
 				break;
@@ -2278,7 +2284,7 @@
 				goto error; /* For now return an error */
 
 			  done:
-				if (!(chn_htx->flags & HTX_FL_EOM)) {
+				if (!(chn_htx->flags & HTX_FL_EOM) && (!(h1m->flags & H1_MF_CLEN) || h1m->curr_len)) {
 					TRACE_STATE("No EOM flags in done state", H1_EV_TX_DATA|H1_EV_H1C_ERR|H1_EV_H1S_ERR, h1c->conn, h1s);
 					goto error; /* For now return an error */
 				}
