diff --git a/Text/XML.hs b/Text/XML.hs
--- a/Text/XML.hs
+++ b/Text/XML.hs
@@ -89,6 +89,7 @@
 import qualified Text.XML.Stream.Render as R
 import qualified Data.Text as T
 import Data.Either (partitionEithers)
+import Control.Monad.Trans.Resource (MonadThrow, monadThrow, runExceptionT, runResourceT)
 import Prelude hiding (readFile, writeFile, FilePath)
 import Filesystem.Path.CurrentOS (FilePath, encodeString)
 import Control.Exception (SomeException, Exception, throwIO, handle)
@@ -279,7 +280,7 @@
     deriving (Show, Typeable)
 instance Exception UnresolvedEntityException
 
-renderBytes :: MonadUnsafeIO m => R.RenderSettings -> Document -> Producer m ByteString
+--renderBytes :: MonadUnsafeIO m => R.RenderSettings -> Document -> Producer m ByteString
 renderBytes rs doc = D.renderBytes rs $ toXMLDocument' rs doc
 
 writeFile :: R.RenderSettings -> FilePath -> Document -> IO ()
diff --git a/Text/XML/Stream/Parse.hs b/Text/XML/Stream/Parse.hs
--- a/Text/XML/Stream/Parse.hs
+++ b/Text/XML/Stream/Parse.hs
@@ -93,6 +93,7 @@
     , manyTill, takeWhile, try, anyChar
     )
 import qualified Control.Applicative as A
+import Control.Monad.Trans.Resource (MonadThrow, monadThrow, MonadResource)
 import Data.Conduit.Attoparsec (conduitParser, PositionRange)
 import Data.XML.Types
     ( Name (..), Event (..), Content (..)
diff --git a/Text/XML/Stream/Render.hs b/Text/XML/Stream/Render.hs
--- a/Text/XML/Stream/Render.hs
+++ b/Text/XML/Stream/Render.hs
@@ -33,20 +33,23 @@
 import qualified Data.Conduit.List as CL
 import qualified Data.Conduit.Text as CT
 import Data.Monoid (mempty)
+import Control.Monad.Trans.Resource (MonadThrow)
 
 -- | Render a stream of 'Event's into a stream of 'ByteString's. This function
 -- wraps around 'renderBuilder' and 'builderToByteString', so it produces
 -- optimally sized 'ByteString's with minimal buffer copying.
 --
 -- The output is UTF8 encoded.
-renderBytes :: MonadUnsafeIO m => RenderSettings -> Conduit Event m ByteString
+--renderBytes :: Monad m => RenderSettings -> Conduit Event m ByteString
 renderBytes rs = renderBuilder rs =$= builderToByteString
 
 -- | Render a stream of 'Event's into a stream of 'ByteString's. This function
 -- wraps around 'renderBuilder', 'builderToByteString' and 'renderBytes', so it
 -- produces optimally sized 'ByteString's with minimal buffer copying.
-renderText :: (MonadThrow m, MonadUnsafeIO m)
+{-
+renderText :: (MonadThrow m)
            => RenderSettings -> Conduit Event m Text
+-}
 renderText rs = renderBytes rs =$= CT.decode CT.utf8
 
 data RenderSettings = RenderSettings
diff --git a/Text/XML/Unresolved.hs b/Text/XML/Unresolved.hs
--- a/Text/XML/Unresolved.hs
+++ b/Text/XML/Unresolved.hs
@@ -63,6 +63,7 @@
 import qualified Data.Conduit.Binary as CB
 import Control.Exception (throw)
 import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Resource (MonadThrow, monadThrow, runExceptionT, runResourceT)
 import Control.Monad.ST (runST)
 import Data.Conduit.Lazy (lazyConsume)
 
@@ -123,10 +124,10 @@
 renderBuilder :: Monad m => R.RenderSettings -> Document -> Producer m Builder
 renderBuilder rs doc = CL.sourceList (toEvents doc) =$= R.renderBuilder rs
 
-renderBytes :: MonadUnsafeIO m => R.RenderSettings -> Document -> Producer m ByteString
+--renderBytes :: MonadUnsafeIO m => R.RenderSettings -> Document -> Producer m ByteString
 renderBytes rs doc = CL.sourceList (toEvents doc) =$= R.renderBytes rs
 
-renderText :: (MonadThrow m, MonadUnsafeIO m) => R.RenderSettings -> Document -> Producer m Text
+--renderText :: (MonadThrow m, MonadUnsafeIO m) => R.RenderSettings -> Document -> Producer m Text
 renderText rs doc = CL.sourceList (toEvents doc) =$= R.renderText rs
 
 fromEvents :: MonadThrow m => Consumer P.EventPos m Document
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -26,6 +26,7 @@
 import Control.Exception (toException)
 
 import qualified Data.Conduit as C
+import qualified Control.Monad.Trans.Resource as C
 import qualified Data.Conduit.List as CL
 import qualified Data.Map as Map
 import Text.Blaze (toMarkup)
diff --git a/xml-conduit.cabal b/xml-conduit.cabal
--- a/xml-conduit.cabal
+++ b/xml-conduit.cabal
@@ -1,5 +1,5 @@
 name:            xml-conduit
-version:         1.2.0
+version:         1.2.0.1
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michaels@suite-sol.com>, Aristid Breitkreuz <aristidb@googlemail.com>
@@ -28,8 +28,9 @@
 
 library
     build-depends:   base                      >= 4        && < 5
-                   , conduit                   >= 1.0      && < 1.1
-                   , resourcet                 >= 0.3      && < 0.5
+                   , conduit                   >= 1.0      && < 1.2
+                   , conduit-extra
+                   , resourcet                 >= 0.3      && < 1.2
                    , attoparsec-conduit        >= 1.0
                    , blaze-builder-conduit     >= 1.0
                    , bytestring                >= 0.9
@@ -69,6 +70,7 @@
                           , xml-types >= 0.3.1
                           , conduit
                           , blaze-markup
+                          , resourcet
 
 source-repository head
   type:     git
