diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.6.x
+
+- `streamParser` and functions using it would swallow certain runaway errors. This is fixed.
+
 # 0.5.x
 
 ## 0.4.0.2 -> 0.5.0
diff --git a/cassava-conduit.cabal b/cassava-conduit.cabal
--- a/cassava-conduit.cabal
+++ b/cassava-conduit.cabal
@@ -1,5 +1,5 @@
 name:               cassava-conduit
-version:            0.5.1
+version:            0.6.0
 license:            BSD3
 license-file:       etc/LICENCE.md
 author:             Dom De Re
diff --git a/src/Data/Csv/Conduit.hs b/src/Data/Csv/Conduit.hs
--- a/src/Data/Csv/Conduit.hs
+++ b/src/Data/Csv/Conduit.hs
@@ -121,7 +121,7 @@
   mapM_ (yield . first (CsvStreamRecordParseError . T.pack)) rs
   -- wait for more..
   more <- await
-  maybe (return ()) (streamParser f . p) more
+  streamParser f . p $ fromMaybe BS.empty more
 streamParser _ (Done rs)            = {-# SCC streamParser_Done_p #-} mapM_ (yield . first (CsvStreamRecordParseError . T.pack)) rs
 
 terminatingStreamHeaderParser
