diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -4,6 +4,6 @@
 
 # Contributing
 
-This project is available on [GitHub](https://github.com/davidlazar/process-extras) and [Bitbucket](https://bitbucket.org/davidlazar/process-extras/). You may contribute changes using either.
+This project is available on [GitHub](https://github.com/seereason/process-extras). You may contribute changes there.
 
-Please report bugs and feature requests using the [GitHub issue tracker](https://github.com/davidlazar/process-extras/issues).
+Please report bugs and feature requests using the [GitHub issue tracker](https://github.com/ddssff/process-extras/issues).
diff --git a/process-extras.cabal b/process-extras.cabal
--- a/process-extras.cabal
+++ b/process-extras.cabal
@@ -1,5 +1,5 @@
 Name:               process-extras
-Version:            0.3.0.1
+Version:            0.3.1
 Synopsis:           Process extras
 Description:        Extra functionality for the Process library
                     <http://hackage.haskell.org/package/process>.
diff --git a/src/System/Process/Common.hs b/src/System/Process/Common.hs
--- a/src/System/Process/Common.hs
+++ b/src/System/Process/Common.hs
@@ -4,7 +4,7 @@
 
 import Control.Applicative (pure, (<$>), (<*>))
 import Control.Concurrent
-import Control.Exception as E (SomeException, onException, catch, mask, throw)
+import Control.Exception as E (SomeException, onException, catch, mask, throw, try)
 import Control.Monad
 import Data.ListLike (null)
 import Data.ListLike.IO (ListLikeIO, hGetContents, hPutStr)
@@ -76,7 +76,7 @@
       waitErr <- forkWait $ errf <$> (hGetContents errh >>= forceOutput)
 
       -- now write and flush any input
-      unless (null input) $ do hPutStr inh input; hFlush inh
+      unless (null input) $ do ignoreResourceVanished (hPutStr inh input); hFlush inh
       hClose inh -- done with stdin
 
       -- wait on the output
@@ -90,6 +90,13 @@
       ex <- codef <$> waitForProcess pid
 
       return $ out <> err <> ex
+
+ignoreResourceVanished :: IO () -> IO ()
+ignoreResourceVanished action =
+    try action >>= either ignoreResourceVanished' return
+    where
+      ignoreResourceVanished' e | ioe_type e == ResourceVanished = return ()
+      ignoreResourceVanished' e = throw e
 
 -- | Like readCreateProcess, but the output is read lazily.
 readCreateProcessLazy :: (ProcessOutput a b, ListLikeProcessIO a c) => CreateProcess -> a -> IO b
