diff --git a/hadrian/src/Hadrian/Utilities.hs b/hadrian/src/Hadrian/Utilities.hs
index 77b03f8e85f9a476572cf9fc697eea8051ca4a84..7d901c460233c4081260645f906ae00bff5a181d 100644
--- a/hadrian/src/Hadrian/Utilities.hs
+++ b/hadrian/src/Hadrian/Utilities.hs
@@ -19,6 +19,7 @@ module Hadrian.Utilities (
     copyFile, copyFileUntracked, createFileLink, fixFile,
     makeExecutable, moveFile, removeFile, createDirectory, copyDirectory,
     moveDirectory, removeDirectory, removeFile_, writeFileChangedBS,
+    findExecutable,
 
     -- * Diagnostic info
     Colour (..), ANSIColour (..), putColoured, shouldUseColor,
@@ -668,3 +669,7 @@ renderUnicorn ls =
     ponyPadding = "                                            "
     boxLines :: [String]
     boxLines = ["", "", ""] ++ (lines . renderBox $ ls)
+
+-- Workaround for https://github.com/haskell/directory/issues/180
+findExecutable :: String -> IO (Maybe FilePath)
+findExecutable exe = IO.catch (IO.findExecutable exe) $ \(_ :: IO.IOException) -> pure Nothing
diff --git a/hadrian/src/Rules/Docspec.hs b/hadrian/src/Rules/Docspec.hs
index 30f6a039eb7b2246990417bad0c26a77ef946e2e..8b07ffe80cabc78c7bf9437a88c70544c523e775 100644
--- a/hadrian/src/Rules/Docspec.hs
+++ b/hadrian/src/Rules/Docspec.hs
@@ -2,8 +2,6 @@ module Rules.Docspec
   ( docspecRules
   ) where
 
-import System.Directory (findExecutable)
-
 import Base
 import Context.Path
 import Settings.Builders.Common
diff --git a/hadrian/src/Rules/Lint.hs b/hadrian/src/Rules/Lint.hs
index 0928ec02ebb7d2a0f526c80d0497295e41c5bbe7..5de501bae6c16133b7fdcd18f528bcc4c6d14d01 100644
--- a/hadrian/src/Rules/Lint.hs
+++ b/hadrian/src/Rules/Lint.hs
@@ -4,7 +4,6 @@ module Rules.Lint
 
 import Base
 import Settings.Builders.Common
-import System.Directory (findExecutable)
 import System.Exit (exitFailure)
 
 lintRules :: Rules ()
diff --git a/hadrian/src/Settings/Builders/RunTest.hs b/hadrian/src/Settings/Builders/RunTest.hs
index 2ce79da05a6a4e9ff7987c0c34adb2013554f971..26dbe8acdead614ff28fd4160d19fcf3a776dfd9 100644
--- a/hadrian/src/Settings/Builders/RunTest.hs
+++ b/hadrian/src/Settings/Builders/RunTest.hs
@@ -16,7 +16,6 @@ import Settings.Builders.Common
 import qualified Data.Set    as Set
 import Flavour
 import qualified Context.Type as C
-import System.Directory (findExecutable)
 import Settings.Program
 import qualified Context.Type