diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 0.1.4.1 - 2016-09-04
+
+ * Do not try to execute `stack` commands if not available.
+
 ## 0.1.4.0 - 2016-08-08
 
  * Determine GHC libdir and binaries using stack.
diff --git a/hdevtools.cabal b/hdevtools.cabal
--- a/hdevtools.cabal
+++ b/hdevtools.cabal
@@ -1,5 +1,5 @@
 name:                hdevtools
-version:             0.1.4.0
+version:             0.1.4.1
 synopsis:            Persistent GHC powered background server for FAST haskell development tools
 license:             MIT
 license-file:        LICENSE
diff --git a/src/Stack.hs b/src/Stack.hs
--- a/src/Stack.hs
+++ b/src/Stack.hs
@@ -31,7 +31,7 @@
 
 -- | Search for a @stack.yaml@ upwards in given file path tree.
 findStackYaml :: FilePath -> IO (Maybe FilePath)
-findStackYaml = fmap (fmap trim) . execInPath "stack path --config-location"
+findStackYaml = fmap (fmap trim) . execStackInPath "path --config-location"
 
 -- | Run @stack path@ to compute @StackConfig@
 getStackConfig :: CommandExtra -> IO (Maybe StackConfig)
@@ -49,29 +49,18 @@
     root = takeDirectory p
 
 getStackGhcBinDir :: FilePath -> IO (Maybe FilePath)
-getStackGhcBinDir = fmap (fmap trim) . execInPath "stack path --compiler-bin"
+getStackGhcBinDir = fmap (fmap trim) . execStackInPath "path --compiler-bin"
 
 getStackGhcLibDir :: FilePath -> IO (Maybe FilePath)
-getStackGhcLibDir = fmap (fmap takeDirectory) . execInPath "stack path --global-pkg-db"
+getStackGhcLibDir = fmap (fmap takeDirectory) . execStackInPath "path --global-pkg-db"
 
---------------------------------------------------------------------------------
 getStackDist :: FilePath -> IO (Maybe FilePath)
---------------------------------------------------------------------------------
-getStackDist p = (trim <$>) <$> execInPath cmd p
-  where
-    cmd        = "stack path --dist-dir"
-    -- dir        = takeDirectory p
-    -- splice     = (dir </>) . trim
+getStackDist p = (trim <$>) <$> execStackInPath "path --dist-dir" p
 
---------------------------------------------------------------------------------
 getStackDbs :: FilePath -> IO (Maybe [FilePath])
---------------------------------------------------------------------------------
-getStackDbs p = do mpp <- execInPath cmd p
-                   case mpp of
-                       Just pp -> Just <$> extractDbs pp
-                       Nothing -> return Nothing
-  where
-    cmd       = "stack path --ghc-package-path"
+getStackDbs p =
+  execStackInPath "path --ghc-package-path" p >>=
+  maybe (return Nothing) (\pp -> return <$> extractDbs pp)
 
 extractDbs :: String -> IO [FilePath]
 extractDbs = filterM doesDirectoryExist . stringPaths
@@ -94,6 +83,11 @@
 trim = f . f
    where
      f = reverse . dropWhile isSpace
+
+-- Execute stack command in path (if stack is available)
+execStackInPath :: String -> FilePath -> IO (Maybe String)
+execStackInPath a p =
+  findExecutable "stack" >>= maybe (return Nothing) (const $ execInPath ("stack " ++ a) p)
 
 #if __GLASGOW_HASKELL__ < 709
 execInPath :: String -> FilePath -> IO (Maybe String)
