diff --git a/simple-pipe.cabal b/simple-pipe.cabal
--- a/simple-pipe.cabal
+++ b/simple-pipe.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.8
 
 name:		simple-pipe
-version:	0.0.0.24
+version:	0.0.0.25
 stability:	Experimental
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -80,7 +80,7 @@
 source-repository	this
     type:	git
     location:	git://github.com/YoshikuniJujo/simple-pipe.git
-    tag:	simple-pipe-0.0.0.24
+    tag:	simple-pipe-0.0.0.25
 
 library
     hs-source-dirs:	src
diff --git a/src/Data/Pipe/Flow.hs b/src/Data/Pipe/Flow.hs
--- a/src/Data/Pipe/Flow.hs
+++ b/src/Data/Pipe/Flow.hs
@@ -9,7 +9,7 @@
 
 until :: (PipeClass p, Monad m, Monad (p a a m)) => (a -> Bool) -> p a a m ()
 until p = (await >>=) . maybe (return ()) $ \x ->
-	if p x then yield x else yield x >> before p
+	if p x then yield x else yield x >> until p
 
 filter :: (PipeClass p, Monad m, Monad (p a a m)) => (a -> Bool) -> p a a m ()
 filter p = (await >>=) . maybe (return ()) $ \x ->
