diff --git a/Data/Conduit/Combinators.hs b/Data/Conduit/Combinators.hs
--- a/Data/Conduit/Combinators.hs
+++ b/Data/Conduit/Combinators.hs
@@ -267,7 +267,7 @@
 -- structures.
 --
 -- Since 1.0.0
-enumFromTo :: (Monad m, Enum a, Eq a) => a -> a -> Producer m a
+enumFromTo :: (Monad m, Enum a, Ord a) => a -> a -> Producer m a
 enumFromTo = CL.enumFromTo
 
 -- | Produces an infinite stream of repeated applications of f to x.
@@ -1807,6 +1807,15 @@
         => ConduitM i o m ()
         -> Sink i m r
         -> ConduitM i o m r
+#if MIN_VERSION_conduit(1, 2, 0)
+onAwait (ConduitM callback) (ConduitM sink0) = ConduitM $ \rest -> let
+    go (Done r) = rest r
+    go (HaveOutput _ _ o) = absurd o
+    go (NeedInput f g) = callback $ \() -> NeedInput (go . f) (go . g)
+    go (PipeM mp) = PipeM (liftM go mp)
+    go (Leftover f i) = Leftover (go f) i
+    in go (sink0 Done)
+#else
 onAwait (ConduitM callback) =
     ConduitM . go . unConduitM
   where
@@ -1815,6 +1824,7 @@
     go (NeedInput f g) = callback >> NeedInput (go . f) (go . g)
     go (PipeM mp) = PipeM (liftM go mp)
     go (Leftover f i) = Leftover (go f) i
+#endif
 {-# INLINE onAwait #-}
 
 yieldS :: (PrimMonad base, MonadBase base m)
diff --git a/Data/Conduit/Combinators/Internal.hs b/Data/Conduit/Combinators/Internal.hs
--- a/Data/Conduit/Combinators/Internal.hs
+++ b/Data/Conduit/Combinators/Internal.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE CPP #-}
 -- | Internal helper functions, usually used for rewrite rules.
 module Data.Conduit.Combinators.Internal
     ( initReplicate
@@ -42,7 +43,11 @@
         loop cnt (PipeM mp) = mp >>= loop cnt
         loop _ (Leftover _ i) = absurd i
 
+#if MIN_VERSION_conduit(1, 2, 0)
+    loop cnt0 (injectLeftovers $ sink0 Done)
+#else
     loop cnt0 (injectLeftovers sink0)
+#endif
   where
     finish (Done r) = return r
     finish (HaveOutput _ _ o) = absurd o
@@ -80,7 +85,11 @@
         loop (PipeM mp) = mp >>= loop
         loop (Leftover _ i) = absurd i
 
+#if MIN_VERSION_conduit(1, 2, 0)
+    loop (injectLeftovers (sink0 Done))
+#else
     loop (injectLeftovers sink0)
+#endif
 {-# RULES "initRepeatConnect" forall mseed f sink.
     initRepeat mseed f $$ sink
     = initRepeatConnect mseed f sink
diff --git a/Data/Conduit/Combinators/Unqualified.hs b/Data/Conduit/Combinators/Unqualified.hs
--- a/Data/Conduit/Combinators/Unqualified.hs
+++ b/Data/Conduit/Combinators/Unqualified.hs
@@ -260,7 +260,7 @@
 -- structures.
 --
 -- Since 1.0.0
-enumFromToC :: (Monad m, Enum a, Eq a) => a -> a -> Producer m a
+enumFromToC :: (Monad m, Enum a, Ord a) => a -> a -> Producer m a
 enumFromToC = CC.enumFromTo
 {-# INLINE enumFromToC #-}
 
diff --git a/conduit-combinators.cabal b/conduit-combinators.cabal
--- a/conduit-combinators.cabal
+++ b/conduit-combinators.cabal
@@ -1,5 +1,5 @@
 name:                conduit-combinators
-version:             0.2.8.2
+version:             0.2.8.3
 synopsis:            Commonly used conduit functions, for both chunked and unchunked data
 description:         Provides a replacement for Data.Conduit.List, as well as a convenient Conduit module.
 homepage:            https://github.com/fpco/conduit-combinators
