diff --git a/Network/Wai/Test.hs b/Network/Wai/Test.hs
--- a/Network/Wai/Test.hs
+++ b/Network/Wai/Test.hs
@@ -20,6 +20,7 @@
     , assertHeader
     , assertNoHeader
     ) where
+
 import Network.Wai
 import qualified Test.HUnit.Base as H
 import Control.Monad.IO.Class (liftIO)
@@ -41,8 +42,6 @@
 import qualified Data.Text.Encoding as TE
 import qualified Data.Conduit as C
 import qualified Data.Conduit.List as CL
-import Data.Monoid (mempty)
-import Network.Socket.Internal (SockAddr (SockAddrInet))
 
 type Session = ReaderT Application (StateT ClientState IO)
 
@@ -69,26 +68,6 @@
 request :: Request -> Session SResponse
 request = srequest . flip SRequest L.empty
 
-defaultRequest :: Request
-defaultRequest = Request
-    { requestMethod = "GET"
-    , httpVersion = H.http11
-    , rawPathInfo = "/"
-    , rawQueryString = ""
-    , serverName = "localhost"
-    , serverPort = 80
-    , requestHeaders = []
-    , isSecure = False
-    , remoteHost = SockAddrInet 0 0
-    , pathInfo = []
-    , queryString = []
-    , requestBody = mempty
-    , vault = mempty
-#if MIN_VERSION_wai(1, 4, 0)
-    , requestBodyLength = KnownLength 0
-#endif
-    }
-
 -- | Set whole path (request path + query string).
 setPath :: Request -> S8.ByteString -> Request
 setPath req path = req {
@@ -112,19 +91,19 @@
 srequest :: SRequest -> Session SResponse
 srequest (SRequest req bod) = do
     app <- ask
-    liftIO $ C.runResourceT $ do
-        let req' = req { requestBody = CL.sourceList $ L.toChunks bod }
-        res <- app req'
-        sres <- runResponse res
-        -- FIXME cookie processing
-        return sres
+    let req' = req
+            { requestBody = CL.sourceList $ L.toChunks bod
+            }
+    liftIO $ app req' >>= runResponse
+    -- FIXME cookie processing
+    --return sres
 
-runResponse :: Response -> C.ResourceT IO SResponse
+runResponse :: Response -> IO SResponse
 runResponse res = do
-    bss <- body C.$= CL.map toBuilder C.$= builderToByteString C.$$ CL.consume
+    bss <- withBody $ \body -> body C.$= CL.map toBuilder C.$= builderToByteString C.$$ CL.consume
     return $ SResponse s h $ L.fromChunks bss
   where
-    (s, h, body) = responseSource res
+    (s, h, withBody) = responseToSource res
     toBuilder (C.Chunk builder) = builder
     toBuilder C.Flush = flush
 
diff --git a/wai-test.cabal b/wai-test.cabal
--- a/wai-test.cabal
+++ b/wai-test.cabal
@@ -1,5 +1,5 @@
 name:            wai-test
-version:         1.3.1.1
+version:         2.0.0
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -14,7 +14,7 @@
 
 library
     build-depends:   base                      >= 4        && < 5
-                   , wai                       >= 1.3      && < 1.5
+                   , wai                       >= 2.0      && < 2.1
                    , bytestring                >= 0.9.1.4
                    , text                      >= 0.7      && < 0.12
                    , blaze-builder             >= 0.2.1.4  && < 0.4
