diff --git a/Data/Conduit/Internal.hs b/Data/Conduit/Internal.hs
--- a/Data/Conduit/Internal.hs
+++ b/Data/Conduit/Internal.hs
@@ -570,15 +570,7 @@
 --
 -- Notice that the /leftover/ parameter for the @Pipe@s must be @Void@. This
 -- ensures that there is no accidental data loss of leftovers during fusion. If
--- you have a @Pipe@ with leftovers, you must first call 'injectLeftovers'. For
--- example:
---
--- >>> import Data.Conduit.List
--- >>> import Data.Conduit.Internal
--- >>> :set -XNoMonomorphismRestriction
--- >>> let pipe = peek >>= \x -> fold (Prelude.+) 0 >>= \y -> return (x, y)
--- >>> runPipe $ sourceList [1..10] >+> injectLeftovers pipe
--- (Just 1,55)
+-- you have a @Pipe@ with leftovers, you must first call 'injectLeftovers'.
 --
 -- Since 0.5.0
 (>+>) :: Monad m => Pipe l a b r0 m r1 -> Pipe Void b c r1 m r2 -> Pipe l a c r0 m r2
diff --git a/Data/Conduit/Lazy.hs b/Data/Conduit/Lazy.hs
--- a/Data/Conduit/Lazy.hs
+++ b/Data/Conduit/Lazy.hs
@@ -25,7 +25,7 @@
   where
     go (Done _) = return []
     go (HaveOutput src _ x) = do
-        xs <- go src
+        xs <- liftBaseOp_ unsafeInterleaveIO $ go src
         return $ x : xs
     go (PipeM msrc) = liftBaseOp_ unsafeInterleaveIO $ do
         a <- monadActive
diff --git a/conduit.cabal b/conduit.cabal
--- a/conduit.cabal
+++ b/conduit.cabal
@@ -1,5 +1,5 @@
 Name:                conduit
-Version:             1.0.0.1
+Version:             1.0.0.2
 Synopsis:            Streaming data processing library.
 Description:
     @conduit@ is a solution to the streaming data problem, allowing for production, transformation, and consumption of streams of data in constant memory. It is an alternative to lazy I\/O which guarantees deterministic resource handling, and fits in the same general solution space as @enumerator@/@iteratee@ and @pipes@. For a brief tutorial, please see the "Data.Conduit" module.
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -319,6 +319,10 @@
             bss <- runResourceT $ CLazy.lazyConsume $ CB.sourceFile "test/main.hs"
             bss `shouldBe` []
 
+        it' "works with pure sources" $ do
+            nums <- CLazy.lazyConsume $ forever $ C.yield 1
+            take 100 nums `shouldBe` replicate 100 (1 :: Int)
+
     describe "sequence" $ do
         it "simple sink" $ do
             let sumSink = do
