diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+# 1.1.1
+
+* Add `asum` combinator
+
 # 1.1.0
 
 * Don't generalize I/O functions to `IOData`, instead specialize to
diff --git a/Data/Conduit/Combinators.hs b/Data/Conduit/Combinators.hs
--- a/Data/Conduit/Combinators.hs
+++ b/Data/Conduit/Combinators.hs
@@ -78,6 +78,7 @@
     , andE
     , or
     , orE
+    , asum
     , elem
     , elemE
     , notElem
@@ -204,7 +205,7 @@
 import qualified Data.ByteString.Base16 as B16
 import qualified Data.ByteString.Base64 as B64
 import qualified Data.ByteString.Base64.URL as B64U
-import           Control.Applicative         ((<$>))
+import           Control.Applicative         (Alternative(..), (<$>))
 import           Control.Exception           (assert)
 import           Control.Category            (Category (..))
 import           Control.Monad               (unless, when, (>=>), liftM, forever)
@@ -813,6 +814,13 @@
 orE = anyE id
 {-# INLINE orE #-}
 #endif
+
+-- | 'Alternative'ly combine all values in the stream.
+--
+-- Since 1.1.1
+asum :: (Monad m, Alternative f)
+     => Consumer (f a) m (f a)
+INLINE_RULE0(asum, foldl (<|>) empty)
 
 -- | Are any values in the stream equal to the given value?
 --
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
@@ -64,6 +64,7 @@
     , andCE
     , orC
     , orCE
+    , asumC
     , elemC
     , elemCE
     , notElemC
@@ -611,6 +612,11 @@
     => Consumer mono m Bool
 orCE = CC.orE
 {-# INLINE orCE #-}
+
+-- | 'Alternative'ly combine all values in the stream.
+--
+-- Since 1.1.1
+asumC = CC.asum
 
 -- | Are any values in the stream equal to the given value?
 --
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:             1.1.0
+version:             1.1.1
 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/snoyberg/mono-traversable
