diff --git a/reg-tests/http-messaging/h00003.vtc b/reg-tests/http-messaging/h00003.vtc
new file mode 100644
index 0000000..acb56b0
--- /dev/null
+++ b/reg-tests/http-messaging/h00003.vtc
@@ -0,0 +1,273 @@
+varnishtest "HTTP request tests: H2 to H1, HTX mode"
+#REQUIRE_VERSION=1.9
+
+# Run it with HAPROXY_PROGRAM=$PWD/haproxy varnishtest -l -k -t 1 "$1"
+
+feature ignore_unknown_macro
+
+# synchronize requests between streams
+barrier b1 cond 2 -cyclic
+barrier b2 cond 2 -cyclic
+barrier b3 cond 2 -cyclic
+barrier b4 cond 2 -cyclic
+
+server s1 {
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 1"
+
+	barrier b2 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 2"
+
+	barrier b3 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 3"
+
+	barrier b4 sync
+	rxreq
+	txresp \
+	  -status 200 \
+	  -body "response 4"
+} -repeat 2 -start
+
+haproxy h1 -conf {
+    defaults
+	#log stdout format raw daemon
+	mode http
+	option http-use-htx
+	timeout connect 1s
+	timeout client  1s
+	timeout server  1s
+
+    listen feh1
+	bind "fd@${feh1}"
+	bind "fd@${feh2}" proto h2
+	server s1 ${s1_addr}:${s1_port}
+} -start
+
+client c1h2 -connect ${h1_feh2_sock} {
+	txpri
+	stream 0 {
+		txsettings
+		rxsettings
+		txsettings -ack
+		rxwinup
+		rxsettings
+		expect settings.ack == true
+	} -run
+
+	# first request is valid
+	stream 1 {
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test1.html"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 1"
+	} -run
+
+	# second request is valid and advertises C-L:0
+	stream 3 {
+		barrier b2 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test2.html" \
+		  -hdr "content-length" "0"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 2"
+	} -run
+
+	# third request sends a body with a GET
+	stream 5 {
+		barrier b3 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test3.html" \
+		  -nostrend \
+		  -body "this must be delivered, like it or not"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 3"
+	} -run
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	stream 7 {
+		barrier b4 sync
+		txreq \
+		  -req "GET" \
+		  -scheme "https" \
+		  -url "/test4.html" \
+		  -hdr "content-length" "0" \
+		  -nostrend
+		txdata -data "this is sent and ignored"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 4"
+	} -run
+} -run
+
+# HEAD requests : don't work well yet
+#client c2h2 -connect ${h1_feh2_sock} {
+#	txpri
+#	stream 0 {
+#		txsettings
+#		rxsettings
+#		txsettings -ack
+#		rxwinup
+#		rxsettings
+#		expect settings.ack == true
+#	} -run
+#
+#	# first request is valid
+#	stream 1 {
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test11.html"
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# second request is valid and advertises C-L:0
+#	stream 3 {
+#		barrier b2 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test12.html" \
+#		  -hdr "content-length" "0"
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# third request sends a body with a GET
+#	stream 5 {
+#		barrier b3 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test13.html" \
+#		  -nostrend \
+#		  -body "this must be delivered, like it or not"
+#		rxwinup
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#
+#	# fourth request is valid and advertises C-L:0, and close, and is
+#	# followed by a string "this is not sent\r\n\r\n" which must be
+#	# dropped.
+#	stream 7 {
+#		barrier b4 sync
+#		txreq \
+#		  -req "HEAD" \
+#		  -scheme "https" \
+#		  -url "/test14.html" \
+#		  -hdr "content-length" "0" \
+#		  -nostrend
+#		txdata -data "this is sent and ignored"
+#		rxwinup
+#		rxhdrs
+#		expect resp.status == 200
+#		rxdata -all
+#		expect resp.bodylen == 0
+#	} -run
+#} -run
+
+# POST requests
+client c3h2 -connect ${h1_feh2_sock} {
+	txpri
+	stream 0 {
+		txsettings
+		rxsettings
+		txsettings -ack
+		rxwinup
+		rxsettings
+		expect settings.ack == true
+	} -run
+
+	# first request is valid
+	stream 1 {
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test21.html"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 1"
+	} -run
+
+	# second request is valid and advertises C-L:0
+	stream 3 {
+		barrier b2 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test22.html" \
+		  -hdr "content-length" "0"
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 2"
+	} -run
+
+	# third request sends a body with a GET
+	stream 5 {
+		barrier b3 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test23.html" \
+		  -nostrend \
+		  -body "this must be delivered, like it or not"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 3"
+	} -run
+
+	# fourth request is valid and advertises C-L:0, and close, and is
+	# followed by a string "this is not sent\r\n\r\n" which must be
+	# dropped.
+	stream 7 {
+		barrier b4 sync
+		txreq \
+		  -req "POST" \
+		  -scheme "https" \
+		  -url "/test24.html" \
+		  -hdr "content-length" "0" \
+		  -nostrend
+		txdata -data "this is sent and ignored"
+		rxwinup
+		rxhdrs
+		expect resp.status == 200
+		rxdata -all
+		expect resp.body == "response 4"
+	} -run
+} -run
