diff --git a/Data/Conduit/Blaze.hs b/Data/Conduit/Blaze.hs
--- a/Data/Conduit/Blaze.hs
+++ b/Data/Conduit/Blaze.hs
@@ -152,6 +152,7 @@
             InsertByteString op' bs bStep' -> do
                 let buf' = updateEndOfSlice buf op'
                     bsk  = maybe id (:) $ unsafeFreezeNonEmptyBuffer buf'
-                    front' = front . bsk . (bs:)
+                    bsk' = if S.null bs then id else (bs:)
+                    front' = front . bsk . bsk'
                 ioBuf' <- nextBuf 1 buf'
                 go bStep' ioBuf' front'
diff --git a/blaze-builder-conduit.cabal b/blaze-builder-conduit.cabal
--- a/blaze-builder-conduit.cabal
+++ b/blaze-builder-conduit.cabal
@@ -1,5 +1,5 @@
 Name:                blaze-builder-conduit
-Version:             0.4.0.1
+Version:             0.4.0.2
 Synopsis:            Convert streams of builders to streams of bytestrings.
 Description:         Convert streams of builders to streams of bytestrings.
 License:             BSD3
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -12,7 +12,7 @@
 import Control.Monad.ST (runST)
 import Data.Monoid
 import qualified Data.ByteString as S
-import Blaze.ByteString.Builder (fromByteString, toLazyByteString, insertLazyByteString)
+import Blaze.ByteString.Builder (fromByteString, toLazyByteString, insertLazyByteString, flush)
 import qualified Data.ByteString.Lazy as L
 import Data.ByteString.Lazy.Char8 ()
 
@@ -40,6 +40,12 @@
             let src = mconcat $ map (CL.sourceList . return) builders
             outBss <- src C.$= builderToByteString C.$$ CL.consume
             lbs @=? L.fromChunks outBss
+
+        it "flush shouldn't bring in empty strings." $ do
+            let dat = ["hello", "world"]
+                src = CL.sourceList dat C.$= CL.map ((`mappend` flush) . fromByteString)
+            out <- src C.$= builderToByteString C.$$ CL.consume
+            dat @=? out
 
         prop "flushing" $ \bss' -> runST $ do
             let bss = concatMap (\bs -> [C.Chunk $ S.pack bs, C.Flush]) $ filter (not . null) bss'
