diff --git a/Network/Wai/Handler/Warp/Settings.hs b/Network/Wai/Handler/Warp/Settings.hs
--- a/Network/Wai/Handler/Warp/Settings.hs
+++ b/Network/Wai/Handler/Warp/Settings.hs
@@ -4,6 +4,8 @@
 
 import Control.Exception
 import qualified Data.ByteString as S
+import qualified Data.Text as T
+import qualified Data.Text.IO as TIO
 import qualified Data.ByteString.Lazy.Char8 as L8
 import Data.Conduit
 import Data.Conduit.Network (HostPreference (HostIPv4))
@@ -77,7 +79,7 @@
 defaultExceptionHandler :: Maybe Request -> SomeException -> IO ()
 defaultExceptionHandler _ e = throwIO e `catches` handlers
   where
-    handlers = [Handler ah, Handler ih, Handler oh, Handler sh]
+    handlers = [Handler ah, Handler ih, Handler oh, Handler th, Handler sh]
 
     ah :: AsyncException -> IO ()
     ah ThreadKilled = return ()
@@ -93,8 +95,11 @@
       where
         et = ioeGetErrorType x
 
+    th :: TimeoutThread -> IO ()
+    th TimeoutThread = return ()
+
     sh :: SomeException -> IO ()
-    sh x = hPrint stderr x
+    sh = TIO.hPutStrLn stderr . T.pack . show
 
 defaultExceptionResponse :: SomeException -> Response
 defaultExceptionResponse _ = responseLBS H.internalServerError500 [(H.hContentType, "text/plain")] "Something went wrong"
diff --git a/Network/Wai/Handler/Warp/Timeout.hs b/Network/Wai/Handler/Warp/Timeout.hs
--- a/Network/Wai/Handler/Warp/Timeout.hs
+++ b/Network/Wai/Handler/Warp/Timeout.hs
@@ -38,6 +38,8 @@
   , cancel
   , pause
   , resume
+  -- * Exceptions
+  , TimeoutThread (..)
   ) where
 
 #if MIN_VERSION_base(4,6,0)
diff --git a/warp.cabal b/warp.cabal
--- a/warp.cabal
+++ b/warp.cabal
@@ -1,5 +1,5 @@
 Name:                warp
-Version:             2.1.2
+Version:             2.1.2.1
 Synopsis:            A fast, light-weight web server for WAI applications.
 License:             MIT
 License-file:        LICENSE
@@ -48,6 +48,7 @@
                    , unix-compat               >= 0.2
                    , void
                    , wai                       >= 2.1      && < 2.2
+                   , text
   if flag(network-bytestring)
       Build-Depends: network                   >= 2.2.1.5  && < 2.2.3
                    , network-bytestring        >= 0.1.3    && < 0.1.4
@@ -135,6 +136,7 @@
                    , hspec                     >= 1.3
                    , time
                    , old-locale
+                   , text
 
   if (os(linux) || os(freebsd) || os(darwin)) && flag(allow-sendfilefd)
     Cpp-Options:   -DSENDFILEFD
