diff --git a/engine-io-wai.cabal b/engine-io-wai.cabal
--- a/engine-io-wai.cabal
+++ b/engine-io-wai.cabal
@@ -1,5 +1,5 @@
 name: engine-io-wai
-version: 1.0.1
+version: 1.0.2
 homepage: http://github.com/ocharles/engine.io
 license: BSD3
 license-file: LICENSE
@@ -28,7 +28,9 @@
         websockets >= 0.8 && < 0.10,
         wai-websockets >= 3 && < 3.1,
         mtl >= 2 && < 2.3,
-        transformers >= 0.4 && < 0.5,
+        either >= 4,
+        transformers >= 0.2 && < 0.5,
+        transformers-compat >= 0.4,
         attoparsec >= 0.13 && < 0.14
 
     hs-source-dirs: src
diff --git a/src/Network/EngineIO/Wai.hs b/src/Network/EngineIO/Wai.hs
--- a/src/Network/EngineIO/Wai.hs
+++ b/src/Network/EngineIO/Wai.hs
@@ -11,10 +11,10 @@
 
 
 import Network.Wai
-import Control.Applicative
-import Control.Monad.Except
+import Control.Applicative (Applicative)
 import Control.Monad.Reader
-import Control.Monad.Trans.Except
+import Control.Monad.Error.Class
+import Control.Monad.Trans.Either
 import Control.Arrow (second)
 import Data.Maybe (maybeToList)
 import Data.ByteString.Lazy (toStrict)
@@ -35,13 +35,13 @@
 
 
 newtype WaiMonad a = WaiMonad {
-    runWaiMonad :: ExceptT Response (ReaderT Request IO) a
+    runWaiMonad :: EitherT Response (ReaderT Request IO) a
     } deriving (Monad, Functor, Applicative, MonadReader Request, MonadError Response, MonadIO)
 
 
 toWaiApplication :: WaiMonad a -> Application
 toWaiApplication sHandler req respond = do
-    socket <- runReaderT (runExceptT (runWaiMonad sHandler)) req
+    socket <- runReaderT (runEitherT (runWaiMonad sHandler)) req
     case socket of
         Left response -> respond response
         Right _ -> respond $ responseLBS status200 [("Content-Type", "text/html")] $ encodeUtf8 $ fromStrict ""
@@ -64,7 +64,7 @@
         b <- liftIO $ WAI.lazyRequestBody req
         return (parseOnly p $ toStrict b)
 
-    , EIO.srvGetRequestMethod = fmap (WAI.requestMethod) ask
+    , EIO.srvGetRequestMethod = fmap WAI.requestMethod ask
 
     , EIO.srvRunWebSocket = \app -> do
         req <- ask
