diff --git a/Data/Bimap/Server.hs b/Data/Bimap/Server.hs
--- a/Data/Bimap/Server.hs
+++ b/Data/Bimap/Server.hs
@@ -72,7 +72,7 @@
     )
 import Data.Binary (Binary, encodeFile, decodeFile)
 import Data.String (fromString)
-import Control.Concurrent (forkIO, threadDelay)
+import Control.Concurrent (forkIO, threadDelay, killThread)
 import Control.Monad (when, forever)
 import System.Posix.Signals
   ( installHandler
@@ -168,8 +168,9 @@
            -- 404
            _ -> respr $ responseLBS notFound404 [] "The requested route does not exist, or you are using the wrong method.\n"
          --
-  _ <- forkIO $ runSettings (settings defaultSettings) app
+  th <- forkIO $ runSettings (settings defaultSettings) app
   _ <- installHandler softwareTermination (CatchOnce $ putMVar fv ()) Nothing
   takeMVar fv
   takeMVar sv -- Semaphore is set permanently in red
   readMVar v >>= encodeFile saveFile . BM.toList
+  killThread th -- Kill server
diff --git a/bimap-server.cabal b/bimap-server.cabal
--- a/bimap-server.cabal
+++ b/bimap-server.cabal
@@ -1,5 +1,5 @@
 name:                bimap-server
-version:             0.1.0.0
+version:             0.1.0.1
 synopsis:            Two-column database server.
 description:         A server that stores a database with two columns, where the elements in each column are of the same type.
                      Operations are fast, although memory usage increases with the number of rows. The implementation is based
@@ -25,3 +25,4 @@
                , unix
                , directory
   default-language: Haskell2010
+  ghc-options: -Wall
