diff --git a/Network/Wai/Handler/WebSockets.hs b/Network/Wai/Handler/WebSockets.hs
--- a/Network/Wai/Handler/WebSockets.hs
+++ b/Network/Wai/Handler/WebSockets.hs
@@ -7,19 +7,19 @@
 import Control.Monad.IO.Class (liftIO)
 import Data.ByteString (ByteString)
 import Data.Char (toLower)
-import Network.Socket (Socket)
 import Network.Wai (Request, requestHeaders, rawPathInfo, requestHeaders)
 import qualified Data.ByteString.Char8 as S
 import qualified Data.Conduit as C
 import qualified Data.Enumerator as E
+import qualified Data.Enumerator.List as EL
 import qualified Network.WebSockets as WS
-import qualified Network.WebSockets.Internal as WS
+import Network.Wai.Handler.Warp (Connection (..))
 
 -- | For use with 'settingsIntercept' from the Warp web server.
 intercept :: WS.Protocol p
           => (WS.Request -> WS.WebSockets p ())
           -> Request
-          -> Maybe (C.BufferedSource IO ByteString -> Socket -> C.ResourceT IO ())
+          -> Maybe (C.BufferedSource IO ByteString -> Connection -> C.ResourceT IO ())
 intercept = interceptWith WS.defaultWebSocketsOptions
 
 -- | Variation of 'intercept' which allows custom options.
@@ -27,7 +27,7 @@
               => WS.WebSocketsOptions
               -> (WS.Request -> WS.WebSockets p ())
               -> Request
-              -> Maybe (C.BufferedSource IO ByteString -> Socket -> C.ResourceT IO ())
+              -> Maybe (C.BufferedSource IO ByteString -> Connection -> C.ResourceT IO ())
 interceptWith opts app req = case lookup "upgrade" $ requestHeaders req of
     Just s
         | S.map toLower s == "websocket" -> Just $ runWebSockets opts req' app
@@ -42,15 +42,15 @@
               -> WS.RequestHttpPart
               -> (WS.Request -> WS.WebSockets p ())
               -> C.BufferedSource IO ByteString
-              -> Socket
+              -> Connection
               -> C.ResourceT IO ()
-runWebSockets opts req app source sock = do
+runWebSockets opts req app source conn = do
     step <- liftIO $ E.runIteratee $ WS.runWebSocketsWith opts req app send
     source C.$$ C.sinkState (E.returnI step) push close
   where
-    send  = WS.iterSocket sock
+    send  = EL.mapM_ (connSendAll conn)
     close = const $ return ()
 
     push iter bs = do
         step <- liftIO $ E.runIteratee $ E.enumList 1 [bs] E.$$ iter
-        return (E.returnI step, C.Processing)
+        return $ C.StateProcessing $ E.returnI step
diff --git a/wai-websockets.cabal b/wai-websockets.cabal
--- a/wai-websockets.cabal
+++ b/wai-websockets.cabal
@@ -1,5 +1,5 @@
 Name:                wai-websockets
-Version:             1.0.0
+Version:             1.1.0
 Synopsis:            Provide a bridge betweeen WAI and the websockets package.
 License:             BSD3
 License-file:        LICENSE
@@ -19,8 +19,9 @@
 Library
   Build-Depends:     base                          >= 3        && < 5
                    , bytestring                >= 0.9.1.4  && < 0.10
-                   , conduit
-                   , wai                           >= 1.0      && < 1.1
+                   , conduit                   >= 0.2
+                   , wai                           >= 1.1      && < 1.2
+                   , warp                          >= 1.1      && < 1.2
                    , enumerator                >= 0.4.8    && < 0.5
                    , network-enumerator            >= 0.1.2    && < 0.2
                    , blaze-builder                 >= 0.2.1.4  && < 0.4
