diff --git a/graceful.cabal b/graceful.cabal
--- a/graceful.cabal
+++ b/graceful.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                graceful
-version:             0.1.1.0
+version:             0.1.1.1
 synopsis:            Library to write graceful shutdown / upgrade service.
 description:         Library to write graceful shutdown / upgrade service.
 license:             BSD3
diff --git a/src/System/Posix/Graceful.hs b/src/System/Posix/Graceful.hs
--- a/src/System/Posix/Graceful.hs
+++ b/src/System/Posix/Graceful.hs
@@ -89,15 +89,16 @@
                               , gracefulSettingsPidFile = pidFile
                               } sock = do
   exist <- doesFileExist pidFile
-  when exist $ renameFile pidFile (pidFile ++ ".old")
-  clearUnixDomainSocket sockFile
-  bracket (socket AF_UNIX Stream 0) close $ \uds -> do
-    bindSocket uds $ SockAddrUnix sockFile
-    listen uds 1
-    args <- getArgs
-    pid <- forkProcess $ executeFile binary False args Nothing
-    bracket (accept uds) (close . fst) $ \(s, _) -> sendSock s sock
-    void $ getProcessStatus True False pid
+  when exist $ do
+    clearUnixDomainSocket sockFile
+    bracket (socket AF_UNIX Stream 0) close $ \uds -> do
+      bindSocket uds $ SockAddrUnix sockFile
+      listen uds 1
+      args <- getArgs
+      pid <- forkProcess $ executeFile binary False args Nothing
+      bracket (accept uds) (close . fst) $ \(s, _) -> sendSock s sock
+      renameFile pidFile (pidFile ++ ".old")
+      void $ getProcessStatus True False pid
 
 tryIO :: IO a -> IO (Either IOException a)
 tryIO = try
