diff --git a/Server.hs b/Server.hs
--- a/Server.hs
+++ b/Server.hs
@@ -9,8 +9,10 @@
 import Happstack.Server.Compression
 import System.Directory
 import System.Environment
+import System.Exit
 import System.FilePath
 import System.Process
+import GHC.IO.Handle
 import qualified Language.Elm as Elm
 import Paths_elm_server
 
@@ -36,10 +38,18 @@
 serveElm fp = do
   guard (takeExtension fp == ".elm")
   let file = tail fp
-  liftIO $ rawSystem "elm" [ "--make" ,"--runtime=" ++ runtime
-                           , "--cache-dir=elm-server-cache", file ]
+      args = [ "--make" ,"--runtime=" ++ runtime, "--cache-dir=elm-server-cache", file ]
+  (_, stdout, _, handle) <- liftIO $ createProcess $ (proc "elm" args) { std_out = CreatePipe }
+  exitCode <- liftIO $ waitForProcess handle
   liftIO $ removeDirectoryRecursive "elm-server-cache"
-  serveFile (asContentType "text/html") ("build" </> replaceExtension file "html")
+  case (exitCode, stdout) of
+    (ExitFailure _, Just out) ->
+        do str <- liftIO $ hGetContents out
+           badRequest $ toResponse str
+    (ExitFailure _, Nothing) ->
+        badRequest $ toResponse "See command line for error message."
+    (ExitSuccess, _) ->
+        serveFile (asContentType "text/html") ("build" </> replaceExtension file "html")
 
 serveLib :: FilePath -> [Char] -> ServerPartT IO Response
 serveLib libLoc fp = do
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.9
+Version:             0.9.0.1
 Synopsis:            The Elm language server.
 Description:         This package provides a standalone, Happstack-based Elm server.
 
