diff --git a/Server.hs b/Server.hs
--- a/Server.hs
+++ b/Server.hs
@@ -4,6 +4,7 @@
 import Control.Monad (msum,guard)
 import Control.Monad.Trans (MonadIO(liftIO))
 import Data.List (isPrefixOf, isSuffixOf)
+import Data.Version (showVersion)
 import Happstack.Server
 import Happstack.Server.Compression
 import System.Directory (makeRelativeToCurrentDirectory)
@@ -11,11 +12,11 @@
 import qualified Language.Elm as Elm
 import Paths_elm_server
 
-runtime = "/elm-" ++ show version ++ ".js"
+runtime = "elm-" ++ showVersion version ++ ".js"
 
 serve :: String -> IO ()
 serve libLoc = do
-  putStrLn ("Elm Server "++show version++": running at <http://localhost:8000>")
+  putStrLn ("Elm Server " ++ showVersion version ++ ": running at <http://localhost:8000>")
   simpleHTTP nullConf $ do
          _ <- compressedResponseFilter
          msum [ uriRest serveElm
@@ -34,7 +35,7 @@
   ok . toResponse $ Elm.toHtml runtime (pageTitle filePath) content
 
 serveLib libLoc fp = do
-  guard (fp == runtime)
+  guard (fp == '/' : runtime)
   serveFile (asContentType "application/javascript") libLoc
 
 main :: IO ()
@@ -42,7 +43,7 @@
 
 parse :: [String] -> IO ()
 parse ("--help":_) = putStrLn usage
-parse ("--version":_) = putStrLn ("The Elm Server " ++ show version)
+parse ("--version":_) = putStrLn ("The Elm Server " ++ showVersion version)
 parse [] = serve =<< Elm.runtimeLocation
 parse [arg]
     | "--runtime-location=" `isPrefixOf` arg =
diff --git a/elm-server.cabal b/elm-server.cabal
--- a/elm-server.cabal
+++ b/elm-server.cabal
@@ -1,5 +1,5 @@
 Name:                elm-server
-Version:             0.4.0.3
+Version:             0.4.0.4
 Synopsis:            The Elm language server.
 Description:         This package provides a standalone, Happstack-based Elm server.
 
@@ -35,4 +35,4 @@
                        happstack-server == 7.0.2,
                        deepseq,
                        directory,
-                       Elm >= 0.4.0.3
+                       Elm >= 0.4.0.4
