diff --git a/Text/Libyaml.hs b/Text/Libyaml.hs
--- a/Text/Libyaml.hs
+++ b/Text/Libyaml.hs
@@ -8,6 +8,7 @@
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE CPP #-}
+{-# LANGUAGE TypeFamilies #-}
 
 -- | Low-level, streaming YAML interface. For a higher-level interface, see
 -- "Data.Yaml".
@@ -464,7 +465,12 @@
     deriving (Show, Typeable)
 instance Exception ToEventRawException
 
-decode :: MonadResource m => B.ByteString -> GSource m Event
+decode :: MonadResource m => B.ByteString
+#if MIN_VERSION_conduit(1, 0, 0)
+       -> Producer m Event
+#else
+       -> GSource m Event
+#endif
 decode bs | B8.null bs = return ()
 decode bs =
     bracketP alloc cleanup (runParser . fst)
@@ -488,7 +494,12 @@
         c_yaml_parser_delete ptr
         free ptr
 
-decodeFile :: MonadResource m => FilePath -> GSource m Event
+decodeFile :: MonadResource m => FilePath
+#if MIN_VERSION_conduit(1, 0, 0)
+           -> Producer m Event
+#else
+           -> GSource m Event
+#endif
 decodeFile file =
     bracketP alloc cleanup (runParser . fst)
   where
@@ -519,7 +530,12 @@
         c_yaml_parser_delete ptr
         free ptr
 
-runParser :: MonadResource m => Parser -> GSource m Event
+runParser :: MonadResource m => Parser
+#if MIN_VERSION_conduit(1, 0, 0)
+           -> Producer m Event
+#else
+           -> GSource m Event
+#endif
 runParser parser = do
     e <- liftIO $ parserParseOne' parser
     case e of
@@ -543,7 +559,12 @@
           return $ Left $ YamlParseException problem context problemMark
         else Right <$> getEvent er
 
-encode :: MonadResource m => GSink Event m ByteString
+encode :: MonadResource m
+#if MIN_VERSION_conduit(1, 0, 0)
+       => Consumer Event m ByteString
+#else
+       => GSink Event m ByteString
+#endif
 encode =
     runEmitter alloc close
   where
@@ -560,7 +581,11 @@
 
 encodeFile :: MonadResource m
            => FilePath
+#if MIN_VERSION_conduit(1, 0, 0)
+           -> Consumer Event m ()
+#else
            -> GInfSink Event m
+#endif
 encodeFile filePath =
     bracketP getFile c_fclose $ \file -> runEmitter (alloc file) (\u _ -> return u)
   where
@@ -576,8 +601,13 @@
 
 runEmitter :: MonadResource m
            => (Emitter -> IO a) -- ^ alloc
+#if MIN_VERSION_conduit(1, 0, 0)
+           -> (() -> a -> IO b) -- ^ close
+           -> Consumer Event m b
+#else
            -> (u -> a -> IO b) -- ^ close
            -> Pipe l Event o u m b
+#endif
 runEmitter allocI closeI =
     bracketP alloc cleanup go
   where
@@ -594,7 +624,12 @@
     go (emitter, a) =
         loop
       where
+#if MIN_VERSION_conduit(1, 0, 0)
+        loop = await >>= maybe (close ()) push
+#else
         loop = awaitE >>= either close push
+#endif
+
         push e = do
             _ <- liftIO $ toEventRaw e $ c_yaml_emitter_emit emitter
             loop
diff --git a/yaml.cabal b/yaml.cabal
--- a/yaml.cabal
+++ b/yaml.cabal
@@ -1,5 +1,5 @@
 name:            yaml
-version:         0.8.2
+version:         0.8.2.1
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>, Anton Ageev <antage@gmail.com>,Kirill Simonov 
@@ -36,7 +36,7 @@
     build-depends:   base >= 4 && < 5
                    , transformers >= 0.1 && < 0.4
                    , bytestring >= 0.9.1.4
-                   , conduit >= 0.5 && < 0.6
+                   , conduit >= 0.5 && < 1.1
                    , resourcet >= 0.3 && < 0.5
                    , aeson >= 0.5
                    , containers
