diff --git a/Network/Sendfile/Fallback.hs b/Network/Sendfile/Fallback.hs
--- a/Network/Sendfile/Fallback.hs
+++ b/Network/Sendfile/Fallback.hs
@@ -1,7 +1,6 @@
 module Network.Sendfile.Fallback (sendfile) where
 
-import Control.Monad.Trans.Class (lift)
-import Control.Monad.IO.Class (liftIO)
+import Control.Monad.IO.Class (MonadIO(liftIO))
 import Data.ByteString (ByteString)
 import Data.Conduit
 import Data.Conduit.Binary as EB
@@ -20,14 +19,12 @@
 sendfile s fp (PartOfFile off len) hook =
     runResourceT $ EB.sourceFileRange fp (Just off) (Just len) $$ sinkSocket s hook
 
-sinkSocket :: MonadResource m => Socket -> IO () -> Sink ByteString m ()
+-- See sinkHandle.
+sinkSocket :: MonadIO m => Socket -> IO () -> Sink ByteString m ()
 sinkSocket s hook = NeedInput push close
   where
-    push bs = PipeM sendAndHook close'
-      where
-        sendAndHook = do
-            liftIO (SB.sendAll s bs)
-            liftIO hook
-            return (NeedInput push close)
-    close' = return ()
-    close  = lift close'
+    push bs = flip PipeM (return ()) $ do
+        liftIO (SB.sendAll s bs)
+        liftIO hook
+        return (NeedInput push close)
+    close = return ()
diff --git a/simple-sendfile.cabal b/simple-sendfile.cabal
--- a/simple-sendfile.cabal
+++ b/simple-sendfile.cabal
@@ -1,5 +1,5 @@
 Name:                   simple-sendfile
-Version:                0.2.2
+Version:                0.2.3
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
@@ -38,7 +38,7 @@
       else
         Other-Modules: Network.Sendfile.Fallback
         Build-Depends: bytestring      >= 0.9   && < 0.10
-                     , conduit         >= 0.4   && < 0.5
+                     , conduit         >= 0.4.1 && < 0.5
                      , transformers    >= 0.2.2 && < 0.4
 
 Source-Repository head
