diff --git a/Text/XML/Expat/Enumerator.hs b/Text/XML/Expat/Enumerator.hs
--- a/Text/XML/Expat/Enumerator.hs
+++ b/Text/XML/Expat/Enumerator.hs
@@ -94,12 +94,12 @@
            -> IO.IORef [X.Event]
            -> E.Enumeratee B.ByteString X.Event m b
 eneeParser p eventRef = E.checkDone (E.continue . step) where
-	step k E.EOF = checkEvents k
+	step k E.EOF = checkEvents k E.EOF
 		(\ptr -> Expat.parseChunk ptr B.empty True)
 		(\k' -> E.yield (E.Continue k') E.EOF)
 	
 	step k (E.Chunks []) = E.continue (step k)
-	step k (E.Chunks xs) = checkEvents k
+	step k (E.Chunks xs) = checkEvents k (E.Chunks xs)
 		(\ptr -> parseChunks ptr xs)
 		(\k' -> E.continue (step k'))
 	
@@ -112,14 +112,14 @@
 				then return Nothing
 				else parseChunks ptr xs
 	
-	checkEvents k runParse next = do
+	checkEvents k extra runParse next = do
 		(events, maybeErr) <- liftIO (getEvents runParse)
 		let checkError k' = case maybeErr of
 			Nothing -> next k'
 			Just err -> throwError err
 		if null events
 			then checkError k
-			else k (E.Chunks events) >>== E.checkDone checkError
+			else k (E.Chunks events) >>== E.checkDoneEx extra checkError
 	
 	getEvents runParse = liftIO $ do
 		IO.writeIORef eventRef []
diff --git a/expat-enumerator.cabal b/expat-enumerator.cabal
--- a/expat-enumerator.cabal
+++ b/expat-enumerator.cabal
@@ -1,5 +1,5 @@
 name: expat-enumerator
-version: 0.1.0.2
+version: 0.1.0.3
 synopsis: Enumerator-based API for Expat
 license: MIT
 license-file: license.txt
@@ -19,13 +19,13 @@
   location: http://john-millikin.com/software/expat-enumerator/
 
 library
-  ghc-options: -Wall -fno-warn-unused-do-bind
+  ghc-options: -Wall
 
   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
     , hexpat >= 0.19 && < 0.20
     , xml-types >= 0.1.1 && < 0.2
