Index: modules/http2/h2_request.c
===================================================================
--- modules/http2/h2_request.c	(revision 1734906)
+++ modules/http2/h2_request.c	(working copy)
@@ -238,11 +238,20 @@
         return APR_EINVAL;
     }
 
-    /* Always set the "Host" header from :authority, see rfc7540, ch. 8.1.2.3 */
+    /* rfc7540, ch. 8.1.2.3:
+     * - if we have :authority, it overrides any Host header 
+     * - :authority MUST be ommited when converting h1->h2, so we
+     *   might get a stream without, but then Host needs to be there */
     if (!req->authority) {
-        return APR_BADARG;
+        const char *host = apr_table_get(req->headers, "Host");
+        if (!host) {
+            return APR_BADARG;
+        }
+        req->authority = host;
     }
-    apr_table_setn(req->headers, "Host", req->authority);
+    else {
+        apr_table_setn(req->headers, "Host", req->authority);
+    }
 
     s = apr_table_get(req->headers, "Content-Length");
     if (s) {
Index: modules/http2/h2_util.c
===================================================================
--- modules/http2/h2_util.c	(revision 1734906)
+++ modules/http2/h2_util.c	(working copy)
@@ -1070,7 +1070,6 @@
 #define H2_LIT_ARGS(a)      (a),H2_ALEN(a)
 
 static literal IgnoredRequestHeaders[] = {
-    H2_DEF_LITERAL("host"),
     H2_DEF_LITERAL("expect"),
     H2_DEF_LITERAL("upgrade"),
     H2_DEF_LITERAL("connection"),
