diff --git a/cabal-install/Distribution/Client/Compat/Directory.hs b/cabal-install/Distribution/Client/Compat/Directory.hs
new file mode 100644
index 0000000000000000000000000000000000000000..0f9fc4218ed39a6ef19aaa5480f337a429b4dff1
--- /dev/null
+++ b/cabal-install/Distribution/Client/Compat/Directory.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE CPP #-}
+module Distribution.Client.Compat.Directory (setModificationTime) where
+
+#if MIN_VERSION_directory(1,2,3)
+import System.Directory (setModificationTime)
+#else
+
+import Data.Time.Clock (UTCTime)
+
+setModificationTime :: FilePath -> UTCTime -> IO ()
+setModificationTime _fp _t = return ()
+
+#endif
diff --git a/cabal-install/Distribution/Client/Update.hs b/cabal-install/Distribution/Client/Update.hs
index 73561a63f69f07ae8815964b74368f1ec7134b86..58992210414dd2f743bd3c98a8dca2bd83074c03 100644
--- a/cabal-install/Distribution/Client/Update.hs
+++ b/cabal-install/Distribution/Client/Update.hs
@@ -17,6 +17,8 @@ module Distribution.Client.Update
 
 import Distribution.Simple.Setup
          ( fromFlag )
+import Distribution.Client.Compat.Directory
+         ( setModificationTime )
 import Distribution.Client.Types
          ( Repo(..), RemoteRepo(..), maybeRepoRemote )
 import Distribution.Client.HttpUtils
@@ -40,7 +42,6 @@ import Distribution.Simple.Utils
 
 import qualified Data.ByteString.Lazy       as BS
 import Distribution.Client.GZipUtils (maybeDecompress)
-import System.Directory (setModificationTime)
 import System.FilePath ((<.>), dropExtension)
 import Data.Maybe (mapMaybe)
 import Data.Time (getCurrentTime)
diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal
index 5479e42fb7f0c5ce2fb26c78b0c91678121097e6..71d597d5eb435a6f67746e79c17bf0a0e9a2a60c 100644
--- a/cabal-install/cabal-install.cabal
+++ b/cabal-install/cabal-install.cabal
@@ -168,6 +168,7 @@ library
         Distribution.Client.CmdRepl
         Distribution.Client.CmdRun
         Distribution.Client.CmdTest
+        Distribution.Client.Compat.Directory
         Distribution.Client.Compat.ExecutablePath
         Distribution.Client.Compat.FileLock
         Distribution.Client.Compat.FilePerms
@@ -437,6 +438,7 @@ executable cabal
             Distribution.Client.CmdRepl
             Distribution.Client.CmdRun
             Distribution.Client.CmdTest
+            Distribution.Client.Compat.Directory
             Distribution.Client.Compat.ExecutablePath
             Distribution.Client.Compat.FileLock
             Distribution.Client.Compat.FilePerms