diff --git a/fb.cabal b/fb.cabal
--- a/fb.cabal
+++ b/fb.cabal
@@ -1,5 +1,5 @@
 name:              fb
-version:           0.15.2
+version:           1.0
 license:           BSD3
 license-file:      LICENSE
 author:            Felipe Lessa
@@ -40,6 +40,8 @@
   default: False
   description: Print debugging info.
 
+flag conduit11
+  description: Use conduit >= 1.1.
 
 library
   hs-source-dirs: src
@@ -71,12 +73,10 @@
     , transformers-base
     , monad-control
     , resourcet
-    , conduit              == 1.0.*
     , data-default
     , http-types
-    , http-conduit         == 2.0.*
+    , http-conduit         >= 2.0     && < 2.2
     , attoparsec           >= 0.10.4  && < 0.12
-    , attoparsec-conduit   == 1.0.*
     , unordered-containers
     , aeson                >= 0.5     && < 0.8
     , base16-bytestring    >= 0.1
@@ -88,6 +88,14 @@
     , cryptohash           >= 0.7
     , cryptohash-cryptoapi == 0.1.*
     , monad-logger         >= 0.3
+  if flag(conduit11)
+    build-depends:
+        conduit              == 1.1.*
+      , conduit-extra        == 1.1.*
+  else
+    build-depends:
+        conduit              == 1.0.*
+      , attoparsec-conduit   == 1.0.*
   extensions:
     DeriveDataTypeable
     EmptyDataDecls
@@ -111,7 +119,7 @@
   build-depends:
       -- Library dependencies used on the tests.  No need to
       -- specify versions since they'll use the same as above.
-      base, lifted-base, transformers, bytestring,
+      base, lifted-base, transformers, bytestring, resourcet,
       conduit, http-conduit, text, time, aeson, monad-control
 
       -- Test-only dependencies
@@ -119,7 +127,7 @@
     , data-default
     , HUnit
     , QuickCheck
-    , hspec == 1.8.*
+    , hspec == 1.9.*
     , fb
   extensions:
     TypeFamilies
diff --git a/src/Facebook/Auth.hs b/src/Facebook/Auth.hs
--- a/src/Facebook/Auth.hs
+++ b/src/Facebook/Auth.hs
@@ -32,6 +32,7 @@
 import Data.String (IsString(..))
 
 import qualified Control.Exception.Lifted as E
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as AE
 import qualified Data.Aeson.Types as AE
 import qualified Data.Attoparsec.Char8 as AB
@@ -58,7 +59,7 @@
 
 -- | Get an app access token from Facebook using your
 -- credentials.
-getAppAccessToken :: (C.MonadResource m, MonadBaseControl IO m) =>
+getAppAccessToken :: (R.MonadResource m, MonadBaseControl IO m) =>
                      FacebookT Auth m AppAccessToken
 getAppAccessToken =
   runResourceInFb $ do
@@ -104,7 +105,7 @@
 -- request query parameters passed to your 'RedirectUrl' and give
 -- to this function that will complete the user authentication
 -- flow and give you an @'UserAccessToken'@.
-getUserAccessTokenStep2 :: (MonadBaseControl IO m, C.MonadResource m) =>
+getUserAccessTokenStep2 :: (MonadBaseControl IO m, R.MonadResource m) =>
                            RedirectUrl -- ^ Should be exactly the same
                                        -- as in 'getUserAccessTokenStep1'.
                         -> [Argument]  -- ^ Query parameters.
@@ -236,7 +237,7 @@
 -- access token may not be valid as well.  For example, in the
 -- case of an user access token, they may have changed their
 -- password, logged out from Facebook or blocked your app.
-isValid :: (MonadBaseControl IO m, C.MonadResource m) =>
+isValid :: (MonadBaseControl IO m, R.MonadResource m) =>
            AccessToken anyKind
         -> FacebookT anyAuth m Bool
 isValid token = do
@@ -270,7 +271,7 @@
 -- have the same data and expiration time as before, but you
 -- can't assume this).  Note that expired access tokens can't be
 -- extended, only valid tokens.
-extendUserAccessToken :: (MonadBaseControl IO m, C.MonadResource m) =>
+extendUserAccessToken :: (MonadBaseControl IO m, R.MonadResource m) =>
                          UserAccessToken
                       -> FacebookT Auth m (Either FacebookException UserAccessToken)
 extendUserAccessToken token@(UserAccessToken uid data_ _)
@@ -354,7 +355,7 @@
 
 
 -- | Get detailed information about an access token.
-debugToken :: (MonadBaseControl IO m, C.MonadResource m) =>
+debugToken :: (MonadBaseControl IO m, R.MonadResource m) =>
               AppAccessToken  -- ^ Your app access token.
            -> AccessTokenData -- ^ The access token you want to debug.
            -> FacebookT Auth m DebugToken
diff --git a/src/Facebook/Base.hs b/src/Facebook/Base.hs
--- a/src/Facebook/Base.hs
+++ b/src/Facebook/Base.hs
@@ -22,6 +22,7 @@
 import qualified Control.Exception.Lifted as E
 import Control.Monad.Trans.Class (MonadTrans)
 import Control.Monad.Trans.Control (MonadBaseControl)
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
 import qualified Data.Attoparsec.Char8 as AT
 import qualified Data.ByteString as B
@@ -86,12 +87,12 @@
 
 -- | Converts a plain 'H.Response' coming from 'H.http' into a
 -- JSON value.
-asJson :: (MonadIO m, MonadTrans t, C.MonadThrow m, A.FromJSON a) =>
+asJson :: (MonadIO m, MonadTrans t, R.MonadThrow m, A.FromJSON a) =>
           H.Response (C.ResumableSource m ByteString)
        -> t m a
 asJson = lift . asJsonHelper
 
-asJsonHelper :: (MonadIO m, C.MonadThrow m, A.FromJSON a) =>
+asJsonHelper :: (MonadIO m, R.MonadThrow m, A.FromJSON a) =>
                 H.Response (C.ResumableSource m ByteString)
              -> m a
 asJsonHelper response = do
@@ -140,14 +141,14 @@
 
 -- | Same as 'H.http', but tries to parse errors and throw
 -- meaningful 'FacebookException'@s@.
-fbhttp :: (MonadBaseControl IO m, C.MonadResource m) =>
+fbhttp :: (MonadBaseControl IO m, R.MonadResource m) =>
           H.Request
        -> FacebookT anyAuth m (H.Response (C.ResumableSource m ByteString))
 fbhttp req = do
   manager <- getManager
   lift (fbhttpHelper manager req)
 
-fbhttpHelper :: (MonadBaseControl IO m, C.MonadResource m) =>
+fbhttpHelper :: (MonadBaseControl IO m, R.MonadResource m) =>
                 H.Manager
              -> H.Request
              -> m (H.Response (C.ResumableSource m ByteString))
@@ -192,7 +193,7 @@
 
 -- | Send a @HEAD@ request just to see if the resposne status
 -- code is 2XX (returns @True@) or not (returns @False@).
-httpCheck :: (MonadBaseControl IO m, C.MonadResource m) =>
+httpCheck :: (MonadBaseControl IO m, R.MonadResource m) =>
              H.Request
           -> FacebookT anyAuth m Bool
 
diff --git a/src/Facebook/FQL.hs b/src/Facebook/FQL.hs
--- a/src/Facebook/FQL.hs
+++ b/src/Facebook/FQL.hs
@@ -13,8 +13,8 @@
 import Data.Time (UTCTime)
 import Data.Time.Clock.POSIX (posixSecondsToUTCTime)
 
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
-import qualified Data.Conduit as C
 import qualified Data.HashMap.Strict as HMS
 
 import Facebook.Types
@@ -25,7 +25,7 @@
 
 
 -- | Query the Facebook Graph using FQL.
-fqlQuery :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
+fqlQuery :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
             Text                        -- ^ FQL Query
          -> Maybe (AccessToken anyKind) -- ^ Optional access token
          -> FacebookT anyAuth m (Pager a)
diff --git a/src/Facebook/Graph.hs b/src/Facebook/Graph.hs
--- a/src/Facebook/Graph.hs
+++ b/src/Facebook/Graph.hs
@@ -24,10 +24,10 @@
 import Data.Word (Word, Word8, Word16, Word32, Word64)
 import System.Locale (defaultTimeLocale)
 
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
 import qualified Data.Aeson.Encode as AE (fromValue)
 import qualified Data.ByteString.Char8 as B
-import qualified Data.Conduit as C
 import qualified Data.Text.Encoding as TE
 import qualified Data.Text.Lazy as TL
 import qualified Data.Text.Lazy.Builder as TLB
@@ -44,7 +44,7 @@
 
 
 -- | Make a raw @GET@ request to Facebook's Graph API.
-getObject :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
+getObject :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
              Text           -- ^ Path (should begin with a slash @\/@)
           -> [Argument]     -- ^ Arguments to be passed to Facebook
           -> Maybe (AccessToken anyKind) -- ^ Optional access token
@@ -55,7 +55,7 @@
 
 
 -- | Make a raw @POST@ request to Facebook's Graph API.
-postObject :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
+postObject :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
               Text                -- ^ Path (should begin with a slash @\/@)
            -> [Argument]          -- ^ Arguments to be passed to Facebook
            -> AccessToken anyKind -- ^ Access token
@@ -64,7 +64,7 @@
 
 
 -- | Make a raw @DELETE@ request to Facebook's Graph API.
-deleteObject :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
+deleteObject :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
                 Text                -- ^ Path (should begin with a slash @\/@)
              -> [Argument]          -- ^ Arguments to be passed to Facebook
              -> AccessToken anyKind -- ^ Access token
@@ -73,7 +73,7 @@
 
 
 -- | Helper function used by 'postObject' and 'deleteObject'.
-methodObject :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
+methodObject :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
                 HT.Method
              -> Text                -- ^ Path (should begin with a slash @\/@)
              -> [Argument]          -- ^ Arguments to be passed to Facebook
@@ -87,7 +87,7 @@
 
 -- | Make a raw @GET@ request to the /search endpoint of Facebook’s
 -- Graph API.  Returns a raw JSON 'A.Value'.
-searchObjects :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a)
+searchObjects :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a)
               => Text                  -- ^ A Facebook object type to search for
               -> Text                  -- ^ The keyword to search for
               -> [Argument]            -- ^ Additional arguments to pass
diff --git a/src/Facebook/Monad.hs b/src/Facebook/Monad.hs
--- a/src/Facebook/Monad.hs
+++ b/src/Facebook/Monad.hs
@@ -1,4 +1,11 @@
-{-# LANGUAGE DeriveDataTypeable, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, TypeFamilies, UndecidableInstances #-}
+{-# LANGUAGE DeriveDataTypeable,
+             FlexibleContexts,
+             FlexibleInstances,
+             GeneralizedNewtypeDeriving,
+             MultiParamTypeClasses,
+             StandaloneDeriving,
+             TypeFamilies,
+             UndecidableInstances #-}
 module Facebook.Monad
     ( FacebookT
     , Auth
@@ -33,7 +40,6 @@
 import Data.Typeable (Typeable)
 import qualified Control.Monad.Trans.Resource as R
 
-import qualified Data.Conduit as C
 import qualified Network.HTTP.Conduit as H
 
 import Facebook.Types
@@ -45,10 +51,11 @@
 -- have supplied your 'Credentials') or 'NoAuth' (you have not
 -- supplied any 'Credentials').
 newtype FacebookT auth m a = F { unF :: ReaderT FbData m a }
-    deriving ( Functor, Applicative, Alternative, Monad
-             , MonadFix, MonadPlus, MonadIO, MonadTrans
-             , R.MonadThrow, R.MonadActive, R.MonadResource )
+    deriving ( Functor, Applicative, Alternative, Monad, MonadFix
+             , MonadPlus, MonadIO, MonadTrans, R.MonadThrow )
 
+deriving instance (R.MonadResource m, MonadBase IO m) => R.MonadResource (FacebookT auth m)
+
 instance MonadBase b m => MonadBase b (FacebookT auth m) where
     liftBase = lift . liftBase
 
@@ -136,10 +143,10 @@
 
 
 -- | Run a 'ResourceT' inside a 'FacebookT'.
-runResourceInFb :: (C.MonadResource m, MonadBaseControl IO m) =>
-                   FacebookT anyAuth (C.ResourceT m) a
+runResourceInFb :: (R.MonadResource m, MonadBaseControl IO m) =>
+                   FacebookT anyAuth (R.ResourceT m) a
                 -> FacebookT anyAuth m a
-runResourceInFb (F inner) = F $ ask >>= lift . C.runResourceT . runReaderT inner
+runResourceInFb (F inner) = F $ ask >>= lift . R.runResourceT . runReaderT inner
 
 
 -- | Transform the computation inside a 'FacebookT'.
diff --git a/src/Facebook/Object/Action.hs b/src/Facebook/Object/Action.hs
--- a/src/Facebook/Object/Action.hs
+++ b/src/Facebook/Object/Action.hs
@@ -10,7 +10,7 @@
 import Data.String (IsString(..))
 import Data.Text (Text)
 
-import qualified Data.Conduit as C
+import qualified Control.Monad.Trans.Resource as R
 
 import Facebook.Types
 import Facebook.Monad
@@ -25,7 +25,7 @@
 -- >              [ "recipe" #= "http://example.com/cookie.html"
 -- >              , "when"   #= now ]
 -- >              token
-createAction :: (C.MonadResource m, MonadBaseControl IO m)  =>
+createAction :: (R.MonadResource m, MonadBaseControl IO m)  =>
                 Action     -- ^ Action kind to be created.
              -> [Argument] -- ^ Arguments of the action.
              -> Maybe AppAccessToken
@@ -37,7 +37,7 @@
              -> FacebookT Auth m Id
 createAction (Action action) query mapptoken usertoken = do
   creds <- getCreds
-  let post :: (C.MonadResource m, MonadBaseControl IO m)  => Text -> AccessToken anyKind -> FacebookT Auth m Id
+  let post :: (R.MonadResource m, MonadBaseControl IO m)  => Text -> AccessToken anyKind -> FacebookT Auth m Id
       post prepath = postObject (prepath <> appName creds <> ":" <> action) query
   case mapptoken of
     Nothing       -> post "/me/" usertoken
diff --git a/src/Facebook/Object/Checkin.hs b/src/Facebook/Object/Checkin.hs
--- a/src/Facebook/Object/Checkin.hs
+++ b/src/Facebook/Object/Checkin.hs
@@ -14,8 +14,8 @@
 import Data.Time (UTCTime)
 import Data.Typeable (Typeable)
 
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
-import qualified Data.Conduit as C
 
 
 import Facebook.Types
@@ -68,7 +68,7 @@
 -- | Get a checkin from its ID.  The user access token is
 -- optional, but when provided more information can be returned
 -- back by Facebook.
-getCheckin :: (C.MonadResource m, MonadBaseControl IO m) =>
+getCheckin :: (R.MonadResource m, MonadBaseControl IO m) =>
               Id                    -- ^ Checkin ID.
            -> [Argument]            -- ^ Arguments to be passed to Facebook.
            -> Maybe UserAccessToken -- ^ Optional user access token.
@@ -78,7 +78,7 @@
 
 -- | Creates a 'check-in' and returns its ID. Place and
 -- coordinates are both required by Facebook.
-createCheckin :: (C.MonadResource m, MonadBaseControl IO m)  =>
+createCheckin :: (R.MonadResource m, MonadBaseControl IO m)  =>
                  Id               -- ^ Place ID.
               -> GeoCoordinates   -- ^ Coordinates.
               -> [Argument]       -- ^ Other arguments of the action.
diff --git a/src/Facebook/Object/FriendList.hs b/src/Facebook/Object/FriendList.hs
--- a/src/Facebook/Object/FriendList.hs
+++ b/src/Facebook/Object/FriendList.hs
@@ -13,9 +13,8 @@
 import Data.Text (Text)
 import Data.Typeable (Typeable)
 
--- import qualified Control.Exception.Lifted as E
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
-import qualified Data.Conduit as C
 
 
 import Facebook.Types
@@ -71,7 +70,7 @@
 
 -- | Get the friend lists of the given user.
 getUserFriendLists ::
-     (C.MonadResource m, MonadBaseControl IO m) =>
+     (R.MonadResource m, MonadBaseControl IO m) =>
      UserId          -- ^ User ID or @\"me\"@.
   -> [Argument]      -- ^ Arguments to be passed to Facebook.
   -> UserAccessToken -- ^ User access token.
@@ -81,11 +80,10 @@
 
 -- | Get the members of a friend list.
 getFriendListMembers ::
-     (C.MonadResource m, MonadBaseControl IO m) =>
+     (R.MonadResource m, MonadBaseControl IO m) =>
      Id              -- ^ List ID.
   -> [Argument]      -- ^ Arguments to be passed to Facebook.
   -> UserAccessToken -- ^ User access token.
   -> FacebookT anyAuth m (Pager Friend)
 getFriendListMembers id_ query token =
   getObject ("/" <> idCode id_ <> "/members") query (Just token)
-
diff --git a/src/Facebook/Object/Order.hs b/src/Facebook/Object/Order.hs
--- a/src/Facebook/Object/Order.hs
+++ b/src/Facebook/Object/Order.hs
@@ -15,8 +15,8 @@
 import Data.Typeable (Typeable)
 import Data.Time.LocalTime (ZonedTime)
 
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
-import qualified Data.Conduit as C
 
 import Facebook.Types
 import Facebook.Monad
@@ -84,7 +84,7 @@
 
 -- | Get an 'Order' using its 'OrderId'.  The user access token
 -- is mandatory.
-getOrder :: (C.MonadResource m, MonadBaseControl IO m) =>
+getOrder :: (R.MonadResource m, MonadBaseControl IO m) =>
            OrderId         -- ^ Order ID.
         -> UserAccessToken -- ^ User access token.
         -> FacebookT anyAuth m Order
diff --git a/src/Facebook/Object/Page.hs b/src/Facebook/Object/Page.hs
--- a/src/Facebook/Object/Page.hs
+++ b/src/Facebook/Object/Page.hs
@@ -12,8 +12,8 @@
 import Control.Monad (mzero)
 import Control.Monad.Trans.Control (MonadBaseControl)
 import Data.Aeson ((.:), (.:?))
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
-import qualified Data.Conduit as C
 import Data.Text (Text)
 import Data.Typeable (Typeable)
 
@@ -61,7 +61,7 @@
 
 
 -- | Get a page using its ID. The user access token is optional.
-getPage :: (C.MonadResource m, MonadBaseControl IO m)
+getPage :: (R.MonadResource m, MonadBaseControl IO m)
         => Id                    -- ^ Page ID
         -> [Argument]            -- ^ Arguments to be passed to Facebook
         -> Maybe UserAccessToken -- ^ Optional user access token
@@ -70,7 +70,7 @@
 
 
 -- | Search pages by keyword. The user access token is optional.
-searchPages :: (C.MonadResource m, MonadBaseControl IO m)
+searchPages :: (R.MonadResource m, MonadBaseControl IO m)
             => Text                  -- ^ Keyword to search for
             -> [Argument]            -- ^ Arguments to pass to Facebook
             -> Maybe UserAccessToken -- ^ Optional user access token
diff --git a/src/Facebook/Object/User.hs b/src/Facebook/Object/User.hs
--- a/src/Facebook/Object/User.hs
+++ b/src/Facebook/Object/User.hs
@@ -16,9 +16,8 @@
 import Data.Text (Text)
 import Data.Typeable (Typeable)
 
--- import qualified Control.Exception.Lifted as E
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
-import qualified Data.Conduit as C
 
 
 import Facebook.Types
@@ -86,7 +85,7 @@
 -- back by Facebook.  The user ID may be @\"me\"@, in which
 -- case you must provide an user access token and information
 -- about the token's owner is given.
-getUser :: (C.MonadResource m, MonadBaseControl IO m) =>
+getUser :: (R.MonadResource m, MonadBaseControl IO m) =>
            UserId         -- ^ User ID or @\"me\"@.
         -> [Argument]     -- ^ Arguments to be passed to Facebook.
         -> Maybe UserAccessToken -- ^ Optional user access token.
@@ -95,7 +94,7 @@
 
 
 -- | Search users by keyword.
-searchUsers :: (C.MonadResource m, MonadBaseControl IO m)
+searchUsers :: (R.MonadResource m, MonadBaseControl IO m)
             => Text
             -> [Argument]
             -> Maybe UserAccessToken
@@ -105,7 +104,7 @@
 
 -- | Get a list of check-ins made by a given user.
 getUserCheckins ::
-     (C.MonadResource m, MonadBaseControl IO m) =>
+     (R.MonadResource m, MonadBaseControl IO m) =>
      UserId          -- ^ User ID or @\"me\"@.
   -> [Argument]      -- ^ Arguments to be passed to Facebook.
   -> UserAccessToken -- ^ User access token.
@@ -130,7 +129,7 @@
 
 -- | Get the list of friends of the given user.
 getUserFriends ::
-     (C.MonadResource m, MonadBaseControl IO m) =>
+     (R.MonadResource m, MonadBaseControl IO m) =>
      UserId          -- ^ User ID or @\"me\"@.
   -> [Argument]      -- ^ Arguments to be passed to Facebook.
   -> UserAccessToken -- ^ User access token.
diff --git a/src/Facebook/Pager.hs b/src/Facebook/Pager.hs
--- a/src/Facebook/Pager.hs
+++ b/src/Facebook/Pager.hs
@@ -15,6 +15,7 @@
 import Control.Monad.Trans.Resource (MonadResourceBase)
 import Data.Typeable (Typeable)
 
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
 import qualified Data.Conduit as C
 import qualified Network.HTTP.Conduit as H
@@ -66,7 +67,7 @@
 -- | Tries to fetch the next page of a 'Pager'.  Returns
 -- 'Nothing' whenever the current @Pager@ does not have a
 -- 'pagerNext'.
-fetchNextPage :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
+fetchNextPage :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
                  Pager a -> FacebookT anyAuth m (Maybe (Pager a))
 fetchNextPage = fetchHelper pagerNext
 
@@ -74,13 +75,13 @@
 -- | Tries to fetch the previous page of a 'Pager'.  Returns
 -- 'Nothing' whenever the current @Pager@ does not have a
 -- 'pagerPrevious'.
-fetchPreviousPage :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
+fetchPreviousPage :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
                      Pager a -> FacebookT anyAuth m (Maybe (Pager a))
 fetchPreviousPage = fetchHelper pagerPrevious
 
 
 -- | (Internal) See 'fetchNextPage' and 'fetchPreviousPage'.
-fetchHelper :: (C.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
+fetchHelper :: (R.MonadResource m, MonadBaseControl IO m, A.FromJSON a) =>
                (Pager a -> Maybe String) -> Pager a -> FacebookT anyAuth m (Maybe (Pager a))
 fetchHelper pagerRef pager =
   case pagerRef pager of
@@ -121,6 +122,6 @@
       go [] (Just next) = do
         req <- liftIO (H.parseUrl next)
         let get = fbhttpHelper manager req { H.redirectCount = 3 }
-        start =<< lift (C.runResourceT $ asJsonHelper =<< get)
+        start =<< lift (R.runResourceT $ asJsonHelper =<< get)
       start p = go (pagerData p) $! pagerRef p
   return (start pager)
diff --git a/src/Facebook/RealTime.hs b/src/Facebook/RealTime.hs
--- a/src/Facebook/RealTime.hs
+++ b/src/Facebook/RealTime.hs
@@ -22,6 +22,7 @@
 import Data.Text.Encoding (encodeUtf8)
 import Data.Typeable (Typeable)
 
+import qualified Control.Monad.Trans.Resource as R
 import qualified Crypto.Classes as Crypto
 import qualified Crypto.HMAC as Crypto
 import qualified Data.Aeson as A
@@ -92,7 +93,7 @@
 -- If there was any previous subscription for the given
 -- 'RealTimeUpdateObject', it's overriden by this one (even if
 -- the other subscription had a different callback URL).
-modifySubscription :: (C.MonadResource m, MonadBaseControl IO m) =>
+modifySubscription :: (R.MonadResource m, MonadBaseControl IO m) =>
                       RealTimeUpdateObject
                       -- ^ Type of objects whose subscription you
                       -- and to add or modify.
@@ -148,7 +149,7 @@
 
 -- | List current real-time update subscriptions.
 listSubscriptions ::
-  (C.MonadResource m, MonadBaseControl IO m) =>
+  (R.MonadResource m, MonadBaseControl IO m) =>
   AppAccessToken -> FacebookT Auth m [RealTimeUpdateSubscription]
 listSubscriptions apptoken = do
   path <- getSubscriptionsPath
diff --git a/src/Facebook/TestUsers.hs b/src/Facebook/TestUsers.hs
--- a/src/Facebook/TestUsers.hs
+++ b/src/Facebook/TestUsers.hs
@@ -21,9 +21,9 @@
 
 
 import qualified Control.Exception.Lifted as E
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
 import qualified Data.ByteString.Char8 as B
-import qualified Data.Conduit as C
 
 
 import Facebook.Auth
@@ -98,7 +98,7 @@
 
 
 -- | Create a new test user.
-createTestUser :: (C.MonadResource m, MonadBaseControl IO m)
+createTestUser :: (R.MonadResource m, MonadBaseControl IO m)
                   => CreateTestUser -- ^ How the test user should be
                                     -- created.
                   -> AppAccessToken -- ^ Access token for your app.
@@ -110,7 +110,7 @@
 
 
 -- | Get a list of test users.
-getTestUsers :: (C.MonadResource m, MonadBaseControl IO m)
+getTestUsers :: (R.MonadResource m, MonadBaseControl IO m)
                 => AppAccessToken      -- ^ Access token for your app.
                 -> FacebookT Auth m (Pager TestUser)
 getTestUsers token = do
@@ -119,7 +119,7 @@
 
 
 -- | Remove an existing test user.
-removeTestUser :: (C.MonadResource m, MonadBaseControl IO m)
+removeTestUser :: (R.MonadResource m, MonadBaseControl IO m)
                   => TestUser       -- ^ The TestUser to be removed.
                   -> AppAccessToken -- ^ Access token for your app (ignored since fb 0.14.7).
                   -> FacebookT Auth m Bool
@@ -136,7 +136,7 @@
 -- format: \"\/userB_id\/friends\/userA_id\" with the access token of
 -- user B as query parameter. The first call creates a friend request
 -- and the second call accepts the friend request.
-makeFriendConn :: (C.MonadResource m, MonadBaseControl IO m)
+makeFriendConn :: (R.MonadResource m, MonadBaseControl IO m)
                   => TestUser
                   -> TestUser
                   -> FacebookT Auth m ()
@@ -171,7 +171,7 @@
 -- | Same as 'getObject', but instead of parsing the result
 -- as a JSON, it tries to parse either as "true" or "false".
 -- Used only by the Test User API bindings.
-getObjectBool :: (C.MonadResource m, MonadBaseControl IO m)
+getObjectBool :: (R.MonadResource m, MonadBaseControl IO m)
                  => Text
                  -- ^ Path (should begin with a slash @\/@).
                  -> [Argument]
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -22,6 +22,7 @@
 
 
 import qualified Control.Exception.Lifted as E
+import qualified Control.Monad.Trans.Resource as R
 import qualified Data.Aeson as A
 import qualified Data.Aeson.Types as A
 import qualified Data.ByteString.Char8 as B
@@ -100,14 +101,14 @@
     facebookTests "Production tier: "
                   creds
                   manager
-                  (C.runResourceT . FB.runFacebookT creds manager)
-                  (C.runResourceT . FB.runNoAuthFacebookT manager)
+                  (R.runResourceT . FB.runFacebookT creds manager)
+                  (R.runResourceT . FB.runNoAuthFacebookT manager)
     -- ...and the other in Facebook's beta tier.
     facebookTests "Beta tier: "
                   creds
                   manager
-                  (C.runResourceT . FB.beta_runFacebookT creds manager)
-                  (C.runResourceT . FB.beta_runNoAuthFacebookT manager)
+                  (R.runResourceT . FB.beta_runFacebookT creds manager)
+                  (R.runResourceT . FB.beta_runNoAuthFacebookT manager)
 
     -- Tests that don't depend on which tier is chosen.
     libraryTests manager
@@ -115,8 +116,8 @@
 facebookTests :: String
               -> FB.Credentials
               -> H.Manager
-              -> (forall a. FB.FacebookT FB.Auth   (C.ResourceT IO) a -> IO a)
-              -> (forall a. FB.FacebookT FB.NoAuth (C.ResourceT IO) a -> IO a)
+              -> (forall a. FB.FacebookT FB.Auth   (R.ResourceT IO) a -> IO a)
+              -> (forall a. FB.FacebookT FB.NoAuth (R.ResourceT IO) a -> IO a)
               -> Spec
 facebookTests pretitle creds manager runAuth runNoAuth = do
   let describe' = describe . (pretitle ++)
@@ -127,7 +128,7 @@
         token <- FB.getAppAccessToken
         FB.isValid token #?= True
     it "throws a FacebookException on invalid credentials" $
-      C.runResourceT $
+      R.runResourceT $
       FB.runFacebookT invalidCredentials manager $ do
         ret <- E.try $ FB.getAppAccessToken
         case ret  of
@@ -162,7 +163,7 @@
           case FB.dtAccessToken ret of
             Nothing -> fail "dtAccessToken is Nothing"
             Just t -> do
-              let f :: FB.UserAccessToken -> FB.FacebookT FB.Auth (C.ResourceT IO) ()
+              let f :: FB.UserAccessToken -> FB.FacebookT FB.Auth (R.ResourceT IO) ()
                   f (FB.UserAccessToken uid dt exps) = do
                     uid &?= FB.tuId testUser
                     dt  &?= testUserAccessTokenData
@@ -220,7 +221,7 @@
         length val `seq` return ()
 
   describe' "fetchNextPage" $ do
-    let fetchNextPageWorks :: FB.Pager A.Value -> FB.FacebookT anyAuth (C.ResourceT IO) ()
+    let fetchNextPageWorks :: FB.Pager A.Value -> FB.FacebookT anyAuth (R.ResourceT IO) ()
         fetchNextPageWorks pager
           | isNothing (FB.pagerNext pager) = return ()
           | otherwise = FB.fetchNextPage pager >>= maybe not_ (\_ -> return ())
@@ -234,7 +235,7 @@
         fetchNextPageWorks =<< FB.getObject "/app/insights" [] (Just token)
 
   describe' "fetchNextPage/fetchPreviousPage" $ do
-    let backAndForthWorks :: FB.Pager A.Value -> FB.FacebookT anyAuth (C.ResourceT IO) ()
+    let backAndForthWorks :: FB.Pager A.Value -> FB.FacebookT anyAuth (R.ResourceT IO) ()
         backAndForthWorks pager = do
           Just pager2 <- FB.fetchNextPage     pager
           Just pager3 <- FB.fetchPreviousPage pager2
@@ -323,7 +324,7 @@
         token   <- FB.getAppAccessToken
         pager   <- FB.getTestUsers token
         src     <- FB.fetchAllNextPages pager
-        oldList <- liftIO $ C.runResourceT $ src C.$$ CL.consume
+        oldList <- liftIO $ R.runResourceT $ src C.$$ CL.consume
         withTestUser D.def $ \testUser -> do
           let (%?=) = (&?=) `on` fmap FB.tuId
               (//)  = S.difference `on` S.fromList
@@ -395,8 +396,8 @@
         exampleSig  = "vlXgu64BQGFSQrY0ZcJBZASMvYvTHu9GQ0YM9rjPSso"
         exampleData = "eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0"
         exampleCreds = FB.Credentials "name" "id" "secret"
-        runExampleAuth :: FB.FacebookT FB.Auth (C.ResourceT IO) a -> IO a
-        runExampleAuth = C.runResourceT . FB.runFacebookT exampleCreds manager
+        runExampleAuth :: FB.FacebookT FB.Auth (R.ResourceT IO) a -> IO a
+        runExampleAuth = R.runResourceT . FB.runFacebookT exampleCreds manager
     it "works for Facebook example" $ do
       runExampleAuth $ do
         ret <- FB.parseSignedRequest (B.concat [exampleSig, ".", exampleData])
@@ -481,7 +482,7 @@
 
 -- | Perform an action with a new test user. Remove the new test user
 -- after the action is performed.
-withTestUser :: (C.MonadResource m, MonadBaseControl IO m)
+withTestUser :: (R.MonadResource m, MonadBaseControl IO m)
                 => FB.CreateTestUser
                 -> (FB.TestUser -> FB.FacebookT FB.Auth m a)
                 -> FB.FacebookT FB.Auth m a
