diff --git a/Text/XML/LibXML/Enumerator.hs b/Text/XML/LibXML/Enumerator.hs
--- a/Text/XML/LibXML/Enumerator.hs
+++ b/Text/XML/LibXML/Enumerator.hs
@@ -116,17 +116,17 @@
            -> m ([X.Event], Maybe T.Text)
            -> E.Enumeratee a X.Event m b
 eneeParser parseChunk parseComplete = E.checkDone (E.continue . step) where
-	step k E.EOF = checkEvents k parseComplete (\k' -> E.yield (E.Continue k') E.EOF)
+	step k E.EOF = checkEvents k E.EOF parseComplete (\k' -> E.yield (E.Continue k') E.EOF)
 	step k (E.Chunks xs) = parseLoop k xs
 	
 	parseLoop k [] = E.continue (step k)
-	parseLoop k (x:xs) = checkEvents k (parseChunk x) (\k' -> parseLoop k' xs)
+	parseLoop k (x:xs) = checkEvents k (E.Chunks xs) (parseChunk x) (\k' -> parseLoop k' xs)
 	
-	checkEvents k getEvents next = do
+	checkEvents k extra getEvents next = do
 		(events, maybeErr) <- lift getEvents
 		let checkError k' = case maybeErr of
 			Nothing -> next k'
 			Just err -> E.throwError (ErrorCall (T.unpack err))
 		if null events
 			then checkError k
-			else k (E.Chunks events) >>== E.checkDone checkError
+			else k (E.Chunks events) >>== E.checkDoneEx extra checkError
diff --git a/libxml-enumerator.cabal b/libxml-enumerator.cabal
--- a/libxml-enumerator.cabal
+++ b/libxml-enumerator.cabal
@@ -1,5 +1,5 @@
 name: libxml-enumerator
-version: 0.4.0.3
+version: 0.4.0.4
 synopsis: Enumerator-based API for libXML's SAX interface
 license: MIT
 license-file: license.txt
@@ -28,8 +28,8 @@
   build-depends:
       base >= 4 && < 5
     , bytestring >= 0.9 && < 0.10
-    , text >= 0.7 && < 0.11
-    , enumerator >= 0.4 && < 0.5
+    , text >= 0.7 && < 0.12
+    , enumerator >= 0.4.3 && < 0.5
     , transformers >= 0.2 && < 0.3
     , libxml-sax >= 0.6.1 && < 0.7
     , xml-types >= 0.1.1 && < 0.2
