diff --git a/src/System/IO/Streams/Concurrent/Unagi.hs b/src/System/IO/Streams/Concurrent/Unagi.hs
--- a/src/System/IO/Streams/Concurrent/Unagi.hs
+++ b/src/System/IO/Streams/Concurrent/Unagi.hs
@@ -76,3 +76,14 @@
 --
 dupStream :: InChan (Maybe a) -> IO (InputStream a)
 dupStream = dupChan >=> chanToInput
+
+
+--------------------------------------------------------------------------------
+-- | Write to the output stream and have it duplicated to each input stream.
+splitStream :: IO (InputStream a, InputStream a, OutputStream a)
+splitStream = do
+    (inChan, _) <- newChan
+    in1  <- dupStream inChan
+    in2  <- dupStream inChan
+    out1 <- chanToOutput inChan
+    return (in1, in2, out1)
diff --git a/src/System/IO/Streams/Concurrent/Unagi/Bounded.hs b/src/System/IO/Streams/Concurrent/Unagi/Bounded.hs
--- a/src/System/IO/Streams/Concurrent/Unagi/Bounded.hs
+++ b/src/System/IO/Streams/Concurrent/Unagi/Bounded.hs
@@ -77,3 +77,14 @@
 --
 dupStream :: InChan (Maybe a) -> IO (InputStream a)
 dupStream = dupChan >=> chanToInput
+
+
+--------------------------------------------------------------------------------
+-- | Write to the output stream and have it duplicated to each input stream.
+splitStream :: Int -> IO (InputStream a, InputStream a, OutputStream a)
+splitStream chanSize = do
+    (inChan, _) <- newChan chanSize
+    in1  <- dupStream inChan
+    in2  <- dupStream inChan
+    out1 <- chanToOutput inChan
+    return (in1, in2, out1)
diff --git a/unagi-streams.cabal b/unagi-streams.cabal
--- a/unagi-streams.cabal
+++ b/unagi-streams.cabal
@@ -1,5 +1,5 @@
 name:                unagi-streams
-version:             0.2.0
+version:             0.2.1
 synopsis:            Unagi Chan IO-Streams
 description:         Io-streams chans implemented underneath with
                      unagi-chans. This library is a straight port of
