diff --git a/leksah-server.cabal b/leksah-server.cabal
--- a/leksah-server.cabal
+++ b/leksah-server.cabal
@@ -1,5 +1,5 @@
 name: leksah-server
-version: 0.14.3.0
+version: 0.14.3.1
 cabal-version: >= 1.10.2
 build-type: Simple
 license: GPL
@@ -194,7 +194,7 @@
     hs-source-dirs: tests
     main-is:    TestTool.hs
     build-depends: base >= 4.0.0.0 && <4.8,  hslogger >= 1.0.7 && <1.3,
-               leksah-server == 0.14.3.0,
+               leksah-server == 0.14.3.1,
                HUnit >=1.2 && <1.3, transformers >=0.2.2.0 && <0.5, conduit >= 1.0.8 && <1.3,
                conduit-extra >=1.0.0.1 && <1.2, resourcet
 
diff --git a/src/IDE/Utils/FileUtils.hs b/src/IDE/Utils/FileUtils.hs
--- a/src/IDE/Utils/FileUtils.hs
+++ b/src/IDE/Utils/FileUtils.hs
@@ -404,7 +404,7 @@
 getSysLibDir :: IO FilePath
 getSysLibDir = E.catch (do
     (!output,_) <- runTool' "ghc" ["--print-libdir"] Nothing
-    let libDir = toolline $ head output
+    let libDir = head [line | ToolOutput line <- output]
         libDir2 = if ord (T.last libDir) == 13
                     then T.init libDir
                     else libDir
@@ -434,7 +434,7 @@
 figureOutHaddockOpts :: IO [Text]
 figureOutHaddockOpts = do
     (!output,_) <- runTool' "cabal" (["haddock","--with-haddock=leksahecho","--executables"]) Nothing
-    let opts = concatMap (words . T.unpack . toolline) output
+    let opts = concat [words $ T.unpack l | ToolOutput l <- output]
     let res = filterOptGhc opts
     debugM "leksah-server" ("figureOutHaddockOpts " ++ show res)
     return $ map T.pack res
@@ -447,8 +447,8 @@
 figureOutGhcOpts :: IO [Text]
 figureOutGhcOpts = do
     debugM "leksah-server" "figureOutGhcOpts"
-    (!output,_) <- runTool' "cabal" ["build","--with-ghc=leksahecho"] Nothing
-    let res = case catMaybes $ map (findMake . T.unpack . toolline) output of
+    (!output,_) <- runTool' "cabal" ["build","--with-ghc=leksahecho","--with-ghcjs=leksahecho"] Nothing
+    let res = case catMaybes [findMake $ T.unpack l | ToolOutput l <- output] of
                 options:_ -> words options
                 _         -> []
     debugM "leksah-server" $ ("figureOutGhcOpts " ++ show res)
diff --git a/src/IDE/Utils/Tool.hs b/src/IDE/Utils/Tool.hs
--- a/src/IDE/Utils/Tool.hs
+++ b/src/IDE/Utils/Tool.hs
@@ -62,10 +62,10 @@
 import IDE.System.Process.Internals (StdStream(..))
 #else
 import System.Process
-       (proc, waitForProcess, ProcessHandle, createProcess, CreateProcess(..),
-       interruptProcessGroupOf, runCommand, getProcessExitCode,
-       runProcess, runInteractiveProcess, readProcessWithExitCode,
-       terminateProcess)
+       (showCommandForUser, proc, waitForProcess, ProcessHandle,
+        createProcess, CreateProcess(..), interruptProcessGroupOf,
+        runCommand, getProcessExitCode, runProcess, runInteractiveProcess,
+        readProcessWithExitCode, terminateProcess)
 import System.Process.Internals (StdStream(..))
 #endif
 import qualified Data.Text as T
@@ -168,7 +168,9 @@
           create_group = True }
 #endif
     output <- getOutputNoPrompt inp out err pid
-    return (output, pid)
+    return (do
+        C.yield . ToolInput . T.pack $ showCommandForUser executable (map T.unpack arguments)
+        output, pid)
 
 newToolState :: IO ToolState
 newToolState = do
diff --git a/src/IDE/Utils/VersionUtils.hs b/src/IDE/Utils/VersionUtils.hs
--- a/src/IDE/Utils/VersionUtils.hs
+++ b/src/IDE/Utils/VersionUtils.hs
@@ -19,7 +19,7 @@
 ,   getGhcInfo
 ) where
 
-import IDE.Utils.Tool (toolline, runTool')
+import IDE.Utils.Tool (ToolOutput(..), runTool')
 import Data.Char (ord)
 import System.Log.Logger (debugM)
 import Control.Exception as E (SomeException, catch)
@@ -29,7 +29,7 @@
 getGhcVersion :: IO FilePath
 getGhcVersion = E.catch (do
     (!output,_) <- runTool' "ghc" ["--numeric-version"] Nothing
-    let vers = toolline $ head output
+    let vers = head [l | ToolOutput l <- output]
         vers2 = if ord (T.last vers) == 13
                     then T.init vers
                     else vers
@@ -40,13 +40,13 @@
 getGhcInfo :: IO Text
 getGhcInfo = E.catch (do
     (!output,_) <- runTool' "ghc" ["--info"] Nothing
-    return . T.unlines $ map toolline output
+    return . T.unlines $ [l | ToolOutput l <- output]
     ) $ \ (_ :: SomeException) -> error "FileUtils>>getGhcInfo failed"
 
 getHaddockVersion :: IO Text
 getHaddockVersion = E.catch (do
     (!output,_) <- runTool' "haddock" ["--version"] Nothing
-    let vers = toolline $ head output
+    let vers = head [l | ToolOutput l <- output]
         vers2 = if ord (T.last vers) == 13
                     then T.init vers
                     else vers
diff --git a/tests/TestTool.hs b/tests/TestTool.hs
--- a/tests/TestTool.hs
+++ b/tests/TestTool.hs
@@ -72,31 +72,31 @@
 tests = test [
     "Exit Success" ~: do
         (output, _) <- runSelf' ["ExitSuccess"]
-        output `check` [ToolExit ExitSuccess],
+        output `check` [ToolInput "dist/build/test-tool/test-tool ExitSuccess", ToolExit ExitSuccess],
     "Exit Failure" ~: do
         (output, _) <- runSelf' ["Exit42"]
-        output `check` [ToolExit (ExitFailure 42)],
+        output `check` [ToolInput "dist/build/test-tool/test-tool Exit42", ToolExit (ExitFailure 42)],
     "Single Blank Out Line" ~: do
         (output, _) <- runSelf' ["BlankLine", "StdOut"]
-        output `check` [ToolOutput "", ToolExit ExitSuccess],
+        output `check` [ToolInput "dist/build/test-tool/test-tool BlankLine StdOut", ToolOutput "", ToolExit ExitSuccess],
     "Single Blank Err Line" ~: do
         (output, _) <- runSelf' ["BlankLine", "StdErr"]
-        output `check` [ToolError "", ToolExit ExitSuccess],
+        output `check` [ToolInput "dist/build/test-tool/test-tool BlankLine StdErr", ToolError "", ToolExit ExitSuccess],
     "Hello Out" ~: do
         (output, _) <- runSelf' ["Hello", "StdOut"]
-        output `check` [ToolOutput "Hello World", ToolExit ExitSuccess],
+        output `check` [ToolInput "dist/build/test-tool/test-tool Hello StdOut", ToolOutput "Hello World", ToolExit ExitSuccess],
     "Hello Err" ~: do
         (output, _) <- runSelf' ["Hello", "StdErr"]
-        output `check` [ToolError "Hello World", ToolExit ExitSuccess],
+        output `check` [ToolInput "dist/build/test-tool/test-tool Hello StdErr", ToolError "Hello World", ToolExit ExitSuccess],
     "Both" ~: do
         (output, _) <- runSelf' ["ErrAndOut"]
-        output `check` [ToolError "Error", ToolOutput "Output", ToolExit ExitSuccess],
+        output `check` [ToolInput "dist/build/test-tool/test-tool ErrAndOut", ToolError "Error", ToolOutput "Output", ToolExit ExitSuccess],
     "Unterminated Out" ~: do
         (output, _) <- runSelf' ["Unterminated", "StdOut"]
-        output `check` [ToolOutput "Unterminated", ToolExit ExitSuccess],
+        output `check` [ToolInput "dist/build/test-tool/test-tool Unterminated StdOut", ToolOutput "Unterminated", ToolExit ExitSuccess],
     "Unterminated Err" ~: do
         (output, _) <- runSelf' ["Unterminated", "StdErr"]
-        output `check` [ToolError "Unterminated", ToolExit ExitSuccess],
+        output `check` [ToolInput "dist/build/test-tool/test-tool Unterminated StdErr", ToolError "Unterminated", ToolExit ExitSuccess],
     "GHCi Failed Sart" ~: do
         t <- newEmptyMVar
         tool <- newGhci' ["MissingFile.hs"] $ do
