diff --git a/shh.cabal b/shh.cabal
--- a/shh.cabal
+++ b/shh.cabal
@@ -1,5 +1,5 @@
 name:                shh
-version:             0.7.0.5
+version:             0.7.0.6
 synopsis:            Simple shell scripting from Haskell
 description:         Provides a shell scripting environment for Haskell. It
                      helps you use external binaries, and allows you to
diff --git a/src/Shh/Internal.hs b/src/Shh/Internal.hs
--- a/src/Shh/Internal.hs
+++ b/src/Shh/Internal.hs
@@ -237,7 +237,6 @@
             | ioeGetErrorType e == ResourceVanished = pure (throw e)
             | otherwise = throwIO e
 
-
 -- | Flipped version of `|>` with lower precedence.
 --
 -- >>> captureTrim <| (echo "Hello" |> wc "-c")
@@ -441,7 +440,7 @@
             , delegate_ctlc = delegate
             }
         )
-        (\(_,_,_,ph) -> terminateProcess ph)
+        (\(_,_,_,ph) -> terminateProcess ph >> waitForProcess ph)
         $ \(_,_,_,ph) -> waitProc cmd args ph `onException` (terminateProcess ph >> waitForProcess ph)
 
 -- | Create a `Proc` from a command and a list of arguments. Does not delegate
