diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+
+1.3.1
+------------
+* (Fix test suite of 1.3.0)
+
 1.3.0
 ------------
 * Support of `ArrowState`.
@@ -21,7 +26,7 @@
 * Added `feedback`
 * Fixed `accum`
 
-1.0,1
+1.0.1
 ------------
 * Fix some bugs of core part.
 * Added `onEnd`.
diff --git a/machinecell.cabal b/machinecell.cabal
--- a/machinecell.cabal
+++ b/machinecell.cabal
@@ -1,5 +1,5 @@
 name:                machinecell
-version:             1.3.0
+version:             1.3.1
 synopsis:            Arrow based stream transducers
 license:             BSD3
 license-file:        LICENSE
@@ -33,7 +33,7 @@
   default-language:    Haskell2010
   hs-source-dirs:      test
   main-is:             spec.hs
-  other-modules:       RandomProc
+  other-modules:       RandomProc, LoopUtil
   Build-depends:       base >=4.0 && <5.0, mtl >=2.0.1.1, profunctors >=4.0, QuickCheck >=1.0, hspec >=0.2.0, machinecell -any
 
 source-repository head
@@ -44,4 +44,4 @@
 source-repository this
   type:		git
   location:	https://github.com/as-capabl/machinecell.git
-  tag:		release-1.3.0
+  tag:		release-1.3.1
diff --git a/test/LoopUtil.hs b/test/LoopUtil.hs
new file mode 100644
--- /dev/null
+++ b/test/LoopUtil.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE Arrows #-}
+
+module
+    LoopUtil
+where
+
+import Data.Functor
+import Control.Arrow
+import Test.Hspec
+
+import Control.Category ((>>>))
+
+import Control.Arrow.Machine as P
+import Control.Monad.Trans (liftIO)
+import qualified Control.Arrow.Machine.Misc.Pump as Pump
+
+doubler = arr (fmap $ \x -> [x, x]) >>> P.fork
+
+loopUtil =
+  do
+    describe "cycleDelay" $
+      do
+        it "can refer a recent value at downstream." $
+          do
+            let 
+                pa :: ProcessA (Kleisli IO) (Event Int) (Event Int)
+                pa = proc evx ->
+                  do
+                    rec
+                        y <- P.cycleDelay -< r2
+                        anytime (Kleisli putStr) -< "" <$ evx -- side effect
+                        evx2 <- doubler -< evx
+                        r2 <- P.accum 0 -< (+) <$> evx2
+                    returnA -< y <$ evx
+            ret <- liftIO $ runKleisli (P.run pa) [1, 2, 3]
+            ret `shouldBe` [0, 1+1, 1+1+2+2]
+    describe "Pump" $
+      do
+        it "pumps up an event stream." $
+          do
+            let
+                pa :: ProcessA (Kleisli IO) (Event Int) (Event Int)
+                pa = proc evx ->
+                  do
+                    rec
+                         evOut <- Pump.outlet -< (dct, () <$ evx)
+                         anytime (Kleisli putStr) -< "" <$ evx -- side effect
+                         so <- doubler -< evx
+                         dct <- Pump.intake -< (so, () <$ evx)
+                    returnA -< evOut
+
+            ret <- liftIO $ runKleisli (P.run pa) [4, 5, 6]
+            ret `shouldBe` [4, 4, 5, 5, 6, 6]
+                    
