diff --git a/apiary-eventsource.cabal b/apiary-eventsource.cabal
--- a/apiary-eventsource.cabal
+++ b/apiary-eventsource.cabal
@@ -1,5 +1,5 @@
 name:                apiary-eventsource
-version:             1.1.0
+version:             1.2.0
 synopsis:            eventsource support for apiary web framework.
 description:
   example: <https://github.com/philopon/apiary/blob/master/examples/eventsource.hs>
@@ -16,21 +16,12 @@
 -- extra-source-files:  
 cabal-version:       >=1.10
 
-flag wai2apiary
-  default: False
-  manual:  False
-
 library
   exposed-modules:     Web.Apiary.EventSource
   build-depends:       base              >=4.6  && <4.8
-                     , apiary            >=1.1  && <1.2
+                     , apiary            >=1.1  && <1.3
                      , blaze-builder     >=0.3  && <0.4
-  if flag(wai2apiary)
-    build-depends:     wai-eventsource   >=2.0  && <3.0
-                     , conduit           >=1.1  && <1.2
-  else
-    build-depends:     wai-extra         >=3.0  && <3.1
-
+                     , wai-extra         >=3.0  && <3.1
   hs-source-dirs:      src
   ghc-options:         -O2 -Wall
   default-language:    Haskell2010
diff --git a/src/Web/Apiary/EventSource.hs b/src/Web/Apiary/EventSource.hs
--- a/src/Web/Apiary/EventSource.hs
+++ b/src/Web/Apiary/EventSource.hs
@@ -1,45 +1,26 @@
-{-# LANGUAGE NoMonomorphismRestriction #-}
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE CPP #-}
 
 module Web.Apiary.EventSource 
     ( eventSourceIO, eventSourceChan
     , module Network.Wai.EventSource.EventStream
     ) where
 
-import Web.Apiary
+import Web.Apiary(MonadIO(..), status200)
 import Network.Wai.EventSource.EventStream (ServerEvent(..))
 import qualified Network.Wai.EventSource.EventStream as E
 
 import Control.Concurrent.Chan (Chan, dupChan, readChan)
 import Control.Monad.Apiary.Action
-
-import Data.Function
+    (ActionT, status, contentType, stream, StreamingBody)
 
-#ifdef VERSION_wai_eventsource
-import           Blaze.ByteString.Builder (Builder)
-import           Data.Conduit
+import Data.Function(fix)
 
-ioToSource :: IO ServerEvent -> Source IO (Flush Builder)
-ioToSource a =
-    loop
-  where
-    loop = do
-        x <- liftIO a
-        case E.eventToBuilder x of
-            Nothing -> return ()
-            Just y -> do
-                yield $ Chunk y
-                yield Flush
-                loop
-#else
 ioToSource :: IO ServerEvent -> StreamingBody
 ioToSource src send flush = fix $ \loop -> do
     se <- src
     case E.eventToBuilder se of
         Nothing -> return ()
         Just b  -> send b >> flush >> loop
-#endif
 
 -- | eventsource with io action. since 0.11.3.
 eventSourceIO :: Monad m => IO ServerEvent -> ActionT exts prms m ()
