diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.4.16.1
+
+* Workaround for [wai#478](https://github.com/yesodweb/wai/issues/478)
+
 ## 1.4.16
 
 * Some updates for better reverse proxying [yesod-scaffold#114](https://github.com/yesodweb/yesod-scaffold/issues/114)
diff --git a/Devel.hs b/Devel.hs
--- a/Devel.hs
+++ b/Devel.hs
@@ -77,7 +77,8 @@
 import qualified Network.HTTP.ReverseProxy             as ReverseProxy
 import           Network.HTTP.Types                    (status200, status503)
 import           Network.Socket                        (sClose)
-import           Network.Wai                           (responseLBS, requestHeaders)
+import           Network.Wai                           (responseLBS, requestHeaders,
+                                                        requestHeaderHost)
 import           Network.Wai.Parse                     (parseHttpAccept)
 import           Network.Wai.Handler.Warp              (run, defaultSettings, setPort)
 import           Network.Wai.Handler.WarpTLS           (runTLS, tlsSettingsMemory)
@@ -192,7 +193,18 @@
             let req' = req
                     { requestHeaders
                         = ("X-Forwarded-Proto", "https")
-                        : requestHeaders req
+                        -- Workaround for
+                        -- https://github.com/yesodweb/wai/issues/478, where
+                        -- the Host headers aren't set. Without this, generated
+                        -- URLs from guestApproot are incorrect, see:
+                        -- https://github.com/yesodweb/yesod-scaffold/issues/114
+                        : (case lookup "host" (requestHeaders req) of
+                            Nothing ->
+                                case requestHeaderHost req of
+                                    Just host -> (("Host", host):)
+                                    Nothing -> id
+                            Just _ -> id)
+                          (requestHeaders req)
                     }
             app req' send
         httpProxy = run (develPort opts) proxyApp
diff --git a/yesod-bin.cabal b/yesod-bin.cabal
--- a/yesod-bin.cabal
+++ b/yesod-bin.cabal
@@ -1,5 +1,5 @@
 name:            yesod-bin
-version:         1.4.16
+version:         1.4.16.1
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -82,7 +82,7 @@
                      , transformers
                      , transformers-compat
                      , warp               >= 1.3.7.5
-                     , wai                >= 1.4
+                     , wai                >= 2.0
                      , wai-extra
                      , data-default-class
                      , streaming-commons
