diff --git a/Financial/EuroFXRef.hs b/Financial/EuroFXRef.hs
--- a/Financial/EuroFXRef.hs
+++ b/Financial/EuroFXRef.hs
@@ -27,15 +27,13 @@
 import Control.Exception
 import Control.Failure
 import Control.Monad.State.Strict
-import qualified Data.ByteString as B
-import Data.Enumerator (Iteratee (..), run_)
-import Data.Enumerator.List (consume)
+import Control.Monad.Trans.Control
+import Data.Conduit (MonadResource, runResourceT, ResourceT)
 import qualified Data.Map as M
-import Data.Monoid
 import Data.Time.Calendar
 import Data.Time.Clock
 import Data.Typeable
-import Network.HTTP.Enumerator as HTTP
+import Network.HTTP.Conduit as HTTP
 import Network.HTTP.Types as HTTP
 import Text.XML.Expat.Tree
 
@@ -92,42 +90,39 @@
 parseEuropeanCentralBank _ = Left "element expected at top level"
 
 -- | The URL for the European Central Bank's free daily reference rates.
-europeanCentralBankDaily :: Failure HttpException m => m (HTTP.Request m)
+europeanCentralBankDaily :: Failure HttpException m => m (HTTP.Request m')
 europeanCentralBankDaily = parseUrl "http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml"
 
 -- | Fetch today's currency rates from the specified URL.
 --
 -- Throws a 'EuropeanCentralBankException' for failures at HTTP and above,
 -- or 'IOException' for network-level failures.
-fetchFrom :: (Failure EuropeanCentralBankException m, Failure HttpException m, MonadIO m, Read a) =>
+fetchFrom :: (Failure EuropeanCentralBankException m, Failure HttpException m,
+              MonadResource m, MonadBaseControl IO m, Read a) =>
              HTTP.Request m
+          -> HTTP.Manager
           -> m (Rates a)
-fetchFrom req = do
-    mgr <- liftIO newManager
-    run_ $ httpRedirect req processResponse mgr
-
-processResponse :: (Failure EuropeanCentralBankException m, Read a) =>
-                   HTTP.Status
-                -> ResponseHeaders
-                -> Iteratee B.ByteString m (Rates a)
-processResponse status@(Status statusCode _) headers = do
-    body <- mconcat <$> consume
-    case statusCode of
+fetchFrom req mgr = do
+    res <- httpLbs req mgr
+    let body = responseBody res
+    case statusCode (responseStatus res) of
         200 -> do
-            case parse' defaultParseOptions body of
-                Left err -> lift $ failure $ ECBXMLParseException err
-                Right xml ->
+            case parse defaultParseOptions body of
+                (_, Just err) -> failure $ ECBXMLParseException err
+                (xml, _) ->
                     case parseEuropeanCentralBank xml of
-                        Left err -> lift $ failure $ ECBParseException err
+                        Left err -> failure $ ECBParseException err
                         Right rates -> return rates
-        _ -> lift $ failure $ ECBHttpStatusException status
+        _ -> failure $ ECBHttpStatusException (responseStatus res)
 
 -- | Fetch today's currency rates from European Central Bank server.
 -- 'IO' works for @m@ and 'Double' for @a@.
 --
 -- Throws a 'EuropeanCentralBankException' for failures at HTTP and above,
 -- or 'IOException' for network-level failures.
-fetch :: (Failure EuropeanCentralBankException m, Failure HttpException m, MonadIO m, Read a) =>
+fetch :: (Failure EuropeanCentralBankException m, Failure HttpException m,
+          MonadIO m, Read a) =>
          m (Rates a)
-fetch = fetchFrom =<< europeanCentralBankDaily
-
+fetch = do
+    req <- europeanCentralBankDaily
+    liftIO $ withManager $ fetchFrom req
diff --git a/eurofxref.cabal b/eurofxref.cabal
--- a/eurofxref.cabal
+++ b/eurofxref.cabal
@@ -1,5 +1,5 @@
 name: eurofxref
-version: 0.1.2
+version: 0.2.0
 cabal-version: >=1.6
 build-type: Simple
 license: BSD3
@@ -20,10 +20,18 @@
 data-files: example.hs
 
 Library
-    build-depends: base >=4 && <5, bytestring == 0.9.*, containers >= 0.2 && < 0.5,
-                   enumerator >= 0.4.7 && < 0.5, failure == 0.1.*, http-enumerator == 0.6.*,
-                   http-types == 0.6.*, hexpat >= 0.19.6 && < 0.20, mtl < 2.1,
-                   time == 1.2.*
+    build-depends:
+        base >=4 && <5,
+        bytestring == 0.9.*,
+        containers >= 0.2 && < 0.6,
+        failure >= 0.1,
+        monad-control == 0.3.*,
+        conduit == 0.5.*,
+        http-conduit == 1.5.*,
+        http-types >= 0.6.0 && < 0.8.0,
+        hexpat >= 0.20.0 && < 0.21,
+        mtl >= 2.0.0.0 && < 2.2.0.0,
+        time >= 1.2.0.0 && < 1.5.0.0
     exposed-modules: Financial.CurrencyRates, Financial.EuroFXRef
     exposed: True
     buildable: True
diff --git a/example.hs b/example.hs
--- a/example.hs
+++ b/example.hs
@@ -1,5 +1,5 @@
 import Financial.EuroFXRef
-import Network.HTTP.Enumerator (parseUrl)
+import Network.HTTP.Conduit (parseUrl)
 import Control.Applicative
 import Control.Exception
 import Control.Monad
