diff --git a/Data/Conduit/Extra.hs b/Data/Conduit/Extra.hs
--- a/Data/Conduit/Extra.hs
+++ b/Data/Conduit/Extra.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Data.Conduit.Extra
     ( module Data.Conduit.Extra.ZipSink
     , module Data.Conduit.Extra.ZipConduit
@@ -15,6 +16,7 @@
 import Data.Conduit.Internal (Pipe (..), ConduitM (..))
 import Control.Monad (liftM)
 
+#if !MIN_VERSION_conduit(1,0,17)
 -- | Same as normal fusion (e.g. @=$=@), except instead of discarding leftovers
 -- from the downstream component, return them.
 --
@@ -63,3 +65,4 @@
     (r, bs) <- fuseReturnLeftovers left right
     mapM_ leftover $ reverse $ f bs
     return r
+#endif
diff --git a/Data/Conduit/Extra/Resumable.hs b/Data/Conduit/Extra/Resumable.hs
--- a/Data/Conduit/Extra/Resumable.hs
+++ b/Data/Conduit/Extra/Resumable.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Data.Conduit.Extra.Resumable
     ( ResumableConduit(..)
     , connectResume
@@ -12,6 +13,17 @@
 import Data.Conduit.Internal (ConduitM(..), Pipe(..))
 import Data.Void (absurd)
 
+#if MIN_VERSION_conduit(1,0,17)
+import Data.Conduit.Internal (connectResumeConduit)
+
+-- | Connect a 'ResumableConduit' to a sink and return the output of the sink
+-- together with a new 'ResumableConduit'.
+connectResume :: Monad m
+              => ResumableConduit i m o
+              -> Sink o m r
+              -> Sink i m (ResumableConduit i m o, r)
+connectResume = connectResumeConduit
+#else
 -- | A generalization of 'ResumableSource'. Allows to resume an arbitrary
 -- conduit, keeping its state and using it later (or finalizing it).
 data ResumableConduit i m o =
@@ -77,3 +89,4 @@
 infixr 0 =$$+
 infixr 0 =$$++
 infixr 0 =$$+-
+#endif
diff --git a/Data/Conduit/Extra/ZipConduit.hs b/Data/Conduit/Extra/ZipConduit.hs
--- a/Data/Conduit/Extra/ZipConduit.hs
+++ b/Data/Conduit/Extra/ZipConduit.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE DeriveFunctor #-}
+{-# LANGUAGE CPP #-}
 module Data.Conduit.Extra.ZipConduit
     ( ZipConduit (..)
     , sequenceConduits
@@ -11,6 +12,7 @@
 import Control.Applicative (Applicative (..))
 import Data.Traversable (Traversable, sequenceA)
 
+#if !MIN_VERSION_conduit(1,0,17)
 zipConduit :: Monad m
            => ConduitM i o m (x -> y)
            -> ConduitM i o m x
@@ -76,3 +78,4 @@
 -- Since 0.1.5
 sequenceConduits :: (Traversable f, Monad m) => f (ConduitM i o m r) -> ConduitM i o m (f r)
 sequenceConduits = getZipConduit . sequenceA . fmap ZipConduit
+#endif
diff --git a/conduit-extra.cabal b/conduit-extra.cabal
--- a/conduit-extra.cabal
+++ b/conduit-extra.cabal
@@ -1,5 +1,5 @@
 Name:                conduit-extra
-Version:             0.1.6
+Version:             0.1.7
 Synopsis:            Experimental helper functions for conduit.
 Description:
     This package is meant as a testing ground for new concepts in conduit. The idea is to have a much lower barrier to entry for this library relative to conduit itself. This way, conduit itself will continue to have a best-practices, minimal, stable API, while people are free to try crazy new features.
