diff --git a/Network/Wai/Handler/WebSockets.hs b/Network/Wai/Handler/WebSockets.hs
--- a/Network/Wai/Handler/WebSockets.hs
+++ b/Network/Wai/Handler/WebSockets.hs
@@ -52,7 +52,10 @@
 
     push iter bs = do
         step <- liftIO $ E.runIteratee $ E.enumList 1 [bs] E.$$ iter
-        return $ C.StateProcessing $ E.returnI step
+        case step of
+            E.Continue _    -> return $ C.StateProcessing $ E.returnI step
+            E.Yield out inp -> return $ C.StateDone (streamToMaybe inp) out
+            E.Error e       -> C.monadThrow e
     close iter   = do
         _ <- liftIO $ E.runIteratee $ E.enumEOF E.$$ iter
         return ()
@@ -63,3 +66,7 @@
     go (E.Chunks []) = E.continue go
     go (E.Chunks cs) = E.tryIO (Warp.connSendMany c cs) >> E.continue go
     go E.EOF         = E.continue go
+
+streamToMaybe :: E.Stream S.ByteString -> Maybe S.ByteString
+streamToMaybe E.EOF         = Nothing
+streamToMaybe (E.Chunks bs) = Just $ S.concat bs
diff --git a/wai-websockets.cabal b/wai-websockets.cabal
--- a/wai-websockets.cabal
+++ b/wai-websockets.cabal
@@ -1,5 +1,5 @@
 Name:                wai-websockets
-Version:             1.2.0.2
+Version:             1.2.0.3
 Synopsis:            Provide a bridge betweeen WAI and the websockets package.
 License:             MIT
 License-file:        LICENSE
