diff --git a/hdevtools.cabal b/hdevtools.cabal
--- a/hdevtools.cabal
+++ b/hdevtools.cabal
@@ -1,5 +1,5 @@
 name:                hdevtools
-version:             0.1.0.8
+version:             0.1.0.9
 synopsis:            Persistent GHC powered background server for FAST haskell development tools
 description:
     'hdevtools' is a backend for text editor plugins, to allow for things such as
diff --git a/src/Server.hs b/src/Server.hs
--- a/src/Server.hs
+++ b/src/Server.hs
@@ -8,15 +8,20 @@
 import System.Directory (removeFile)
 import System.Exit (ExitCode(ExitSuccess))
 import System.IO (Handle, hClose, hFlush, hGetLine, hPutStrLn)
-import System.IO.Error (ioeGetErrorType, isDoesNotExistError)
+import System.IO.Error (ioeGetErrorType, isAlreadyInUseError, isDoesNotExistError)
 
 import CommandLoop (newCommandLoopState, Config, newConfig, startCommandLoop)
 import Types (ClientDirective(..), Command, emptyCommandExtra, ServerDirective(..))
 import Util (readMaybe)
 
 createListenSocket :: FilePath -> IO Socket
-createListenSocket socketPath =
-    listenOn (UnixSocket socketPath)
+createListenSocket socketPath = do
+    r <- tryJust (guard . isAlreadyInUseError) $ listenOn (UnixSocket socketPath)
+    case r of
+        Right socket -> return socket
+        Left _ -> do
+            removeFile socketPath
+            listenOn (UnixSocket socketPath)
 
 startServer :: FilePath -> Maybe Socket -> IO ()
 startServer socketPath mbSock = do
