diff --git a/Data/Conduit/Process.hs b/Data/Conduit/Process.hs
--- a/Data/Conduit/Process.hs
+++ b/Data/Conduit/Process.hs
@@ -21,7 +21,6 @@
 import Control.Monad
 import Control.Monad.Trans
 import Control.Monad.Trans.Loop
-import Control.Monad.Trans.Resource
 import qualified Data.ByteString as S
 import Data.Conduit
 import qualified Data.Conduit.List as CL
@@ -38,9 +37,7 @@
   :: MonadResource m
      => CreateProcess
      -> GConduit S.ByteString m S.ByteString
-conduitProcess cp = do
-  (_, (Just cin, Just cout, _, ph)) <- lift $ allocate createp closep
-
+conduitProcess cp = bracketP createp closep $ \(Just cin, Just cout, _, ph) -> do
   end <- repeatLoopT $ do
     -- if process's outputs are available, then yields them.
     repeatLoopT $ do
diff --git a/process-conduit.cabal b/process-conduit.cabal
--- a/process-conduit.cabal
+++ b/process-conduit.cabal
@@ -1,5 +1,5 @@
 name:                process-conduit
-version:             0.5.0.2
+version:             0.5.0.3
 synopsis:            Conduits for processes
 
 description:
@@ -34,7 +34,6 @@
                      , text             >= 0.11
                      , process          >= 1.0
                      , conduit          == 0.5.*
-                     , resourcet
                      , shakespeare-text >= 1.0
 
   ghc-options:         -Wall
@@ -45,7 +44,6 @@
   main-is:             ../test.hs
   build-depends:       base            == 4.*
                      , bytestring
-                     , hspec           >= 1.2
-                     , HUnit           >= 1.2
+                     , hspec           >= 1.3
                      , conduit
                      , process-conduit
diff --git a/test.hs b/test.hs
--- a/test.hs
+++ b/test.hs
@@ -1,37 +1,35 @@
-{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
-
-import Data.Conduit.Process
-import System.Process.QQ
-
-import qualified Data.ByteString.Lazy.Char8 as L
-import Data.Conduit
-import qualified Data.Conduit.Binary as CB
-import Test.Hspec.Monadic
-import Test.Hspec.HUnit
-import Test.HUnit
-
-main :: IO ()
-main = hspec $ do
-  describe "process conduit" $ do
-    it "get process's output" $ do
-      r <- runResourceT $ sourceCmd "echo abc def" $$ CB.take (10^9)
-      L.words r @?= ["abc", "def"]
-
-    it "act as conduit" $ do
-      r <- runResourceT $
-        sourceProcess (proc "echo" ["zxc\nasd\nqwe"])
-        $$ conduitCmd "sort"
-        =$ CB.take (10^9)
-      L.words r @?= ["asd", "qwe", "zxc"]
-
-  describe "quasiquoter" $ do
-    it "get process's output" $ do
-      r <- [cmd|echo abc def|]
-      L.words r @?= ["abc", "def"]
-
-    it "act as conduit" $ do
-      r <- runResourceT $
-        sourceProcess (proc "echo" ["zxc\nasd\nqwe"])
-        $$ [ccmd|sort|]
-        =$ CB.take (10^9)
-      L.words r @?= ["asd", "qwe", "zxc"]
+{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
+
+import Data.Conduit.Process
+import System.Process.QQ
+
+import qualified Data.ByteString.Lazy.Char8 as L
+import Data.Conduit
+import qualified Data.Conduit.Binary as CB
+import Test.Hspec
+
+main :: IO ()
+main = hspec $ do
+  describe "process conduit" $ do
+    it "get process's output" $ do
+      r <- runResourceT $ sourceCmd "echo abc def" $$ CB.take (10^9)
+      L.words r `shouldBe` ["abc", "def"]
+
+    it "act as conduit" $ do
+      r <- runResourceT $
+        sourceProcess (proc "echo" ["zxc\nasd\nqwe"])
+        $$ conduitCmd "sort"
+        =$ CB.take (10^9)
+      L.words r `shouldBe` ["asd", "qwe", "zxc"]
+
+  describe "quasiquoter" $ do
+    it "get process's output" $ do
+      r <- [cmd|echo abc def|]
+      L.words r `shouldBe` ["abc", "def"]
+
+    it "act as conduit" $ do
+      r <- runResourceT $
+        sourceProcess (proc "echo" ["zxc\nasd\nqwe"])
+        $$ [ccmd|sort|]
+        =$ CB.take (10^9)
+      L.words r `shouldBe` ["asd", "qwe", "zxc"]
