diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.3.0
+
+* Upgrade to conduit 1.3
+
 ## 1.2.1.2
 
 * Remove an upper bound
diff --git a/Text/HTML/DOM.hs b/Text/HTML/DOM.hs
--- a/Text/HTML/DOM.hs
+++ b/Text/HTML/DOM.hs
@@ -17,34 +17,29 @@
 import qualified Text.HTML.TagStream.Text as TS
 import qualified Text.HTML.TagStream as TS
 import qualified Data.XML.Types as XT
-import Data.Conduit
-import Data.Conduit.Text (decodeUtf8Lenient)
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as TL
 import qualified Data.Conduit.List as CL
 import Control.Arrow ((***))
 import qualified Data.Set as Set
 import qualified Text.XML as X
-import Text.XML.Stream.Parse (decodeHtmlEntities)
-import Data.Conduit.Binary (sourceFile)
+import Conduit
 import qualified Data.ByteString.Lazy as L
-import Control.Monad.Trans.Resource (runExceptionT_)
-import Data.Functor.Identity (runIdentity)
 import Data.Maybe (mapMaybe)
 
 -- | Converts a stream of bytes to a stream of properly balanced @Event@s.
 --
 -- Note that there may be multiple (or not) root elements. @sinkDoc@ addresses
 -- that case.
-eventConduit :: Monad m => Conduit S.ByteString m XT.Event
-eventConduit = decodeUtf8Lenient =$= eventConduit' 
+eventConduit :: Monad m => ConduitT S.ByteString XT.Event m ()
+eventConduit = decodeUtf8LenientC .| eventConduit'
 
-eventConduitText :: Monad m => Conduit T.Text m XT.Event
+eventConduitText :: Monad m => ConduitT T.Text XT.Event m ()
 eventConduitText = eventConduit'
 
-eventConduit' :: Monad m => Conduit T.Text m XT.Event
-eventConduit' = 
-    TS.tokenStream =$= go []
+eventConduit' :: Monad m => ConduitT T.Text XT.Event m ()
+eventConduit' =
+    TS.tokenStream .| go []
   where
     go stack = do
         mx <- await
@@ -101,15 +96,18 @@
         , "wbr"
         ]
 
-sinkDoc :: MonadThrow m => Sink S.ByteString m X.Document
-sinkDoc = sinkDoc' eventConduit 
+sinkDoc :: MonadThrow m => ConduitT S.ByteString o m X.Document
+sinkDoc = sinkDoc' eventConduit
 
-sinkDocText :: MonadThrow m => Sink T.Text m X.Document
+sinkDocText :: MonadThrow m => ConduitT T.Text o m X.Document
 sinkDocText = sinkDoc' eventConduitText
 
-sinkDoc' :: (Monad m, MonadThrow m) => Conduit a m XT.Event -> Sink a m X.Document
-sinkDoc' f = 
-    fmap stripDummy $ mapOutput ((,) Nothing) f =$ addDummyWrapper =$ X.fromEvents
+sinkDoc'
+  :: MonadThrow m
+  => ConduitT a XT.Event m ()
+  -> ConduitT a o m X.Document
+sinkDoc' f =
+    fmap stripDummy $ mapOutput ((,) Nothing) f .| addDummyWrapper .| X.fromEvents
   where
     addDummyWrapper = do
         yield (Nothing, XT.EventBeginElement "html" [])
@@ -125,17 +123,23 @@
     toElement _ = Nothing
 
 readFile :: FilePath -> IO X.Document
-readFile fp = runResourceT $ sourceFile fp $$ sinkDoc
+readFile fp = withSourceFile fp $ \src -> runConduit $ src .| sinkDoc
 
 parseLBS :: L.ByteString -> X.Document
 parseLBS = parseBSChunks . L.toChunks
 
 parseBSChunks :: [S.ByteString] -> X.Document
-parseBSChunks tss = runIdentity $ runExceptionT_ $ CL.sourceList tss $$ sinkDoc
+parseBSChunks tss =
+  case runConduit $ CL.sourceList tss .| sinkDoc of
+    Left e -> error $ "Unexpected exception in parseBSChunks: " ++ show e
+    Right x -> x
 
 parseLT :: TL.Text -> X.Document
 parseLT = parseSTChunks . TL.toChunks
 
 parseSTChunks :: [T.Text] -> X.Document
-parseSTChunks tss = runIdentity $ runExceptionT_ $ CL.sourceList tss $$ sinkDocText 
+parseSTChunks tss =
+  case runConduit $ CL.sourceList tss .| sinkDocText of
+    Left e -> error $ "Unexpected exception in parseSTChunks: " ++ show e
+    Right x -> x
 
diff --git a/html-conduit.cabal b/html-conduit.cabal
--- a/html-conduit.cabal
+++ b/html-conduit.cabal
@@ -1,5 +1,5 @@
 Name:                html-conduit
-Version:             1.2.1.2
+Version:             1.3.0
 Synopsis:            Parse HTML documents using xml-conduit datatypes.
 Description:         This package uses tagstream-conduit for its parser. It automatically balances mismatched tags, so that there shouldn't be any parse failures. It does not handle a full HTML document rendering, such as adding missing html and head tags.
 Homepage:            https://github.com/snoyberg/xml
@@ -19,9 +19,8 @@
                      , bytestring
                      , containers
                      , text
-                     , resourcet                        >= 0.3            && < 1.2
-                     , conduit                          >= 1.0            && < 1.3
-                     , conduit-extra                    >= 1.1.1
+                     , resourcet                        >= 1.2
+                     , conduit                          >= 1.3
                      , xml-conduit                      >= 1.3
                      , tagstream-conduit                >= 0.5.5.3        && < 0.6
                      , xml-types                        >= 0.3            && < 0.4
