diff --git a/Network/Sendfile/Fallback.hs b/Network/Sendfile/Fallback.hs
--- a/Network/Sendfile/Fallback.hs
+++ b/Network/Sendfile/Fallback.hs
@@ -1,12 +1,9 @@
 module Network.Sendfile.Fallback (sendfile) where
 
-import Control.Monad
 import Control.Monad.IO.Class
 import Data.ByteString (ByteString)
-import qualified Data.ByteString as BS
-import Data.Enumerator
-import Data.Enumerator.Binary as EB
-import Data.Enumerator.List as EL
+import Data.Conduit
+import Data.Conduit.Binary as EB
 import Network.Sendfile.Types
 import Network.Socket
 import qualified Network.Socket.ByteString as SB
@@ -18,21 +15,16 @@
 -}
 sendfile :: Socket -> FilePath -> FileRange -> IO () -> IO ()
 sendfile s fp EntireFile hook =
-    run_ $ enumFile fp $$ sendIter s hook
+    runResourceT $ sourceFile fp $$ sinkSocket s hook
 sendfile s fp (PartOfFile off len) hook =
-    run_ $ EB.enumFileRange fp (Just off) (Just len) $$ sendIter s hook
-
-sendIter :: Socket -> IO () -> Iteratee ByteString IO ()
-sendIter s hook = do
-    mb <- EL.head
-    case mb of
-        Nothing -> return ()
-        Just bs -> do
-            liftIO $ sendLoop s bs (BS.length bs)
-            liftIO hook -- FIXME: Is this a right place to call the hook?
-            sendIter s hook
+    runResourceT $ EB.sourceFileRange fp (Just off) (Just len) $$ sinkSocket s hook
 
-sendLoop :: Socket -> ByteString -> Int -> IO ()
-sendLoop s bs len = do
-    bytes <- SB.send s bs
-    when (bytes /= len) $ sendLoop s (BS.drop bytes bs) (len - bytes)
+sinkSocket :: Socket -> IO () -> Sink ByteString IO ()
+sinkSocket s hook =
+    SinkData push close
+  where
+    push bs = do
+        liftIO $ SB.sendAll s bs
+        liftIO hook
+        return (Processing push close)
+    close = return ()
diff --git a/Network/Sendfile/Linux.hsc b/Network/Sendfile/Linux.hsc
--- a/Network/Sendfile/Linux.hsc
+++ b/Network/Sendfile/Linux.hsc
@@ -73,5 +73,5 @@
           sendPart dst src offp left hook
 
 -- Dst Src in order. take care
-foreign import ccall unsafe "sendfile64" c_sendfile
+foreign import ccall unsafe "sendfile" c_sendfile
     :: Fd -> Fd -> Ptr (#type off_t) -> (#type size_t) -> IO (#type ssize_t)
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.0
+Version:                0.2.1
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
@@ -37,7 +37,7 @@
         Build-Depends: unix
       else
         Other-Modules: Network.Sendfile.Fallback
-        Build-Depends: bytestring, enumerator, transformers
+        Build-Depends: bytestring, conduit, transformers
 
 Source-Repository head
   Type:                 git
