diff --git a/Data/Conduit/Internal.hs b/Data/Conduit/Internal.hs
--- a/Data/Conduit/Internal.hs
+++ b/Data/Conduit/Internal.hs
@@ -431,7 +431,7 @@
     inject i (Leftover p i') =
         case inject i' p of
             Leftover p' _ -> p'
-            p' -> Leftover p' i
+            p' -> inject i p'
 
 -- | Transform the monad that a @Pipe@ lives in.
 --
diff --git a/conduit.cabal b/conduit.cabal
--- a/conduit.cabal
+++ b/conduit.cabal
@@ -1,5 +1,5 @@
 Name:                conduit
-Version:             0.5.2
+Version:             0.5.2.1
 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
@@ -35,7 +35,6 @@
 
 main :: IO ()
 main = hspec $ do
-{-
     describe "data loss rules" $ do
         it "consumes the source to quickly" $ do
             x <- runResourceT $ CL.sourceList [1..10 :: Int] C.$$ do
@@ -689,7 +688,6 @@
         it' "works" $ do
             res <- CL.iterate (+ 1) (1 :: Int) C.$$ CL.isolate 10 C.=$ CL.fold (+) 0
             res @?= sum [1..10]
-            -}
 
     describe "unwrapResumable" $ do
         it' "works" $ do
@@ -762,6 +760,15 @@
 
             x3 <- I.readIORef ref
             x3 @?= 1
+    describe "injectLeftovers" $ do
+        it "works" $ do
+            let src = CL.sourceList [1..10 :: Int]
+                conduit = C.awaitForever $ \i -> do
+                    js <- CL.take 2
+                    mapM_ C.leftover $ reverse js
+                    C.yield i
+            res <- (src C.>+> C.injectLeftovers conduit) C.$$ CL.consume
+            res @?= [1..10]
 
 it' :: String -> IO () -> Spec
 it' = it
