diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # ChangeLog
 
+## 3.4.14
+
+* Build with `warp-3.4.13`.
+  [#1071](https://github.com/yesodweb/wai/pull/1071)
+
 ## 3.4.13
 
 * Introduced new smart constructor `tlsSettingsSni` to make it more convenient
diff --git a/Network/Wai/Handler/WarpTLS.hs b/Network/Wai/Handler/WarpTLS.hs
--- a/Network/Wai/Handler/WarpTLS.hs
+++ b/Network/Wai/Handler/WarpTLS.hs
@@ -59,6 +59,9 @@
 ) where
 
 import Control.Applicative ((<|>))
+#if MIN_VERSION_warp(3,4,13)
+import Control.Concurrent.STM (newTVarIO, TVar)
+#endif
 import Control.Exception (
     Exception,
     IOException,
@@ -72,6 +75,7 @@
     throwIO,
     try,
  )
+import qualified Control.Exception as E
 import Control.Monad (guard, void)
 import qualified Data.ByteString as S
 import qualified Data.ByteString.Lazy as L
@@ -89,7 +93,6 @@
 #endif
     withSocketsDo,
  )
-import qualified Control.Exception as E
 import Network.Socket.BufferPool
 import Network.Socket.ByteString (sendAll)
 import qualified Network.TLS as TLS
@@ -274,10 +277,16 @@
     -> Socket
     -> Application
     -> IO ()
-runTLSSocket' tlsset@TLSSettings{..} set credentials mgr sock =
-    runSettingsConnectionMakerSecure set get
+runTLSSocket' tlsset@TLSSettings{..} set credentials mgr sock app = do
+#if MIN_VERSION_warp(3,4,13)
+    (_, newSettings) <- makeServerState set
+    let get = getter tlsset newSettings sock params
+    runSettingsConnectionMakerSecure newSettings get app
+#else
+    let get = getter tlsset set sock params
+    runSettingsConnectionMakerSecure set get app
+#endif
   where
-    get = getter tlsset set sock params
     params =
         TLS.defaultParamsServer
             { TLS.serverWantClientCert = tlsWantClientCert
@@ -382,7 +391,14 @@
   where
     makeConn = do
         pool <- newBufferPool 2048 16384
-        rawRecvN <- makeRecvN bs0 $ receive s pool
+#if MIN_VERSION_warp(3,4,13)
+        appsInProgress <- newTVarIO 0
+        (ss, _) <- makeServerState set
+        let recv = makeGracefulRecv s pool ss appsInProgress
+#else
+        let recv = receive s pool
+#endif
+        rawRecvN <- makeRecvN bs0 recv
         let recvN = wrappedRecvN rawRecvN
         ctx <- TLS.contextNew (backend recvN) params
         TLS.contextHookSetLogging ctx tlsLogging
@@ -390,7 +406,11 @@
         mconn <- timeout tm $ do
             TLS.handshake ctx
             mysa <- getSocketName s
+#if MIN_VERSION_warp(3,4,13)
+            attachConn mysa ctx appsInProgress
+#else
             attachConn mysa ctx
+#endif
         case mconn of
           Nothing -> throwIO IncompleteHeaders
           Just conn -> return conn
@@ -419,8 +439,16 @@
 
 -- | Get "Connection" and "Transport" for a TLS connection that is already did the handshake.
 -- @since 3.4.7
-attachConn :: SockAddr -> TLS.Context -> IO (Connection, Transport)
+attachConn
+    :: SockAddr
+    -> TLS.Context
+#if MIN_VERSION_warp(3,4,13)
+    -> TVar Int -> IO (Connection, Transport)
+attachConn mysa ctx appsInProgress = do
+#else
+    -> IO (Connection, Transport)
 attachConn mysa ctx = do
+#endif
     h2 <- (== Just "h2") <$> TLS.getNegotiatedProtocol ctx
     isH2 <- I.newIORef h2
     writeBuffer <- createWriteBuffer 16384
@@ -440,6 +468,9 @@
             , connWriteBuffer = writeBufferRef
             , connHTTP2 = isH2
             , connMySockAddr = mysa
+#if MIN_VERSION_warp(3,4,13)
+            , connAppsInProgress = appsInProgress
+#endif
             }
       where
         sendall = TLS.sendData ctx . L.fromChunks . return
diff --git a/warp-tls.cabal b/warp-tls.cabal
--- a/warp-tls.cabal
+++ b/warp-tls.cabal
@@ -1,5 +1,5 @@
 Name:                warp-tls
-Version:             3.4.13
+Version:             3.4.14
 Synopsis:            HTTP over TLS support for Warp via the TLS package
 License:             MIT
 License-file:        LICENSE
@@ -22,9 +22,10 @@
                    , bytestring                    >= 0.9
                    , wai                           >= 3.2      && < 3.3
                    , warp                          >= 3.3.29   && < 3.5
-                   , tls                           >= 2.1.3    && < 2.2
+                   , tls                           >= 2.1.3    && < 2.5
                    , network                       >= 2.2.1
                    , streaming-commons
+                   , stm                           >= 2.3
                    , tls-session-manager           >= 0.0.4
                    , recv                          >= 0.1.0   && < 0.2.0
   Exposed-modules:   Network.Wai.Handler.WarpTLS
@@ -39,4 +40,5 @@
 
 source-repository head
   type:     git
-  location: git://github.com/yesodweb/wai.git
+  location: https://github.com/yesodweb/wai.git
+  subdir:   warp-tls
