diff --git a/Data/Serialize/Get/Enumerator.hs b/Data/Serialize/Get/Enumerator.hs
--- a/Data/Serialize/Get/Enumerator.hs
+++ b/Data/Serialize/Get/Enumerator.hs
@@ -4,13 +4,14 @@
     , iterGet
     ) where
 
+import Prelude as P
 import Control.Exception
 import Data.Monoid
 import Data.Typeable
 
 import Data.Serialize.Get
 import Data.Enumerator
-import Data.ByteString
+import Data.ByteString as BS
 
 data ParseError = ParseError String
                 | EOFError
@@ -18,8 +19,8 @@
 
 instance Exception ParseError
 
-
--- | Convert a 'Get' to an 'Iteratee'. A 'ParseError' is emitted on failure.
+-- | Convert a 'Get' to an 'Iteratee'. The resulting 'Iteratee' emits a
+-- 'ParseError' on failure.
 iterGet :: Monad m => Get a -> Iteratee ByteString m a
 iterGet = continue . step . runGetPartial
   where
@@ -30,7 +31,9 @@
         Fail s    -> throwError (ParseError s)
 
     loop p [] = continue (step p)
-    loop p (x:xs) = case p x of
-        Done r bs -> yield r $ Chunks (bs:xs)
-        Partial c -> loop c xs
-        Fail s    -> throwError (ParseError s)
+    loop p (x:xs)
+        | BS.null x = loop p xs
+        | otherwise = case p x of
+            Done r bs -> yield r $ Chunks (bs:xs)
+            Partial c -> loop c xs
+            Fail s    -> throwError (ParseError s)
diff --git a/cereal-enumerator.cabal b/cereal-enumerator.cabal
--- a/cereal-enumerator.cabal
+++ b/cereal-enumerator.cabal
@@ -1,5 +1,5 @@
 name:                cereal-enumerator
-version:             0.1
+version:             0.2
 synopsis:            Deserialize things with cereal and enumerator
 license:             PublicDomain
 author:              Patrick Palka
