diff --git a/cabal-install/Distribution/Compat/Env.hs b/cabal-install/Distribution/Client/Compat/Environment.hs
similarity index 94%
rename from cabal-install/Distribution/Compat/Env.hs
rename to cabal-install/Distribution/Client/Compat/Environment.hs
index 4fbce766e75ab663f8143d124f676561d9a19661..1070b767bc6122ad5710b71547f6ab8f7de22675 100644
--- a/cabal-install/Distribution/Compat/Env.hs
+++ b/cabal-install/Distribution/Client/Compat/Environment.hs
@@ -2,7 +2,7 @@
 
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Distribution.Compat.Env
+-- Module      :  Distribution.Client.Compat.Environment
 -- Copyright   :  (c) Simon Hengel 2012
 -- License     :  BSD-style (see the file LICENSE)
 --
@@ -14,7 +14,7 @@
 --
 -----------------------------------------------------------------------------
 
-module Distribution.Compat.Env (
+module Distribution.Client.Compat.Environment (
   lookupEnv, setEnv
 ) where
 
@@ -33,7 +33,7 @@ import Foreign.C.Error (throwErrnoIfMinus1_)
 import System.Environment (lookupEnv)
 #else
 import System.Environment (getEnv)
-import Distribution.Compat.Exception (catchIO)
+import Distribution.Client.Compat.Exception (catchIO)
 #endif
 
 import System.Posix.Internals ( withFilePath )
diff --git a/cabal-install/Distribution/Compat/Exception.hs b/cabal-install/Distribution/Client/Compat/Exception.hs
similarity index 94%
rename from cabal-install/Distribution/Compat/Exception.hs
rename to cabal-install/Distribution/Client/Compat/Exception.hs
index 72c715bdd010f2666ff8c33ca58ec5e4a79b2072..b4896df6a950bb631e8830e690413c8824c7b455 100644
--- a/cabal-install/Distribution/Compat/Exception.hs
+++ b/cabal-install/Distribution/Client/Compat/Exception.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE CPP #-}
 {-# OPTIONS_HADDOCK hide #-}
-module Distribution.Compat.Exception (
+module Distribution.Client.Compat.Exception (
   mask,
   mask_,
   catchIO,
diff --git a/cabal-install/Distribution/Compat/FilePerms.hs b/cabal-install/Distribution/Client/Compat/FilePerms.hs
similarity index 95%
rename from cabal-install/Distribution/Compat/FilePerms.hs
rename to cabal-install/Distribution/Client/Compat/FilePerms.hs
index 1f8393f515903b7727512daecd7f1fdab3d2fca6..0359c935d37b91e0af4d5545fb59be93c3f6a0ef 100644
--- a/cabal-install/Distribution/Compat/FilePerms.hs
+++ b/cabal-install/Distribution/Client/Compat/FilePerms.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE CPP #-}
 {-# OPTIONS_HADDOCK hide #-}
-module Distribution.Compat.FilePerms (
+module Distribution.Client.Compat.FilePerms (
   setFileOrdinary,
   setFileExecutable,
   setFileHidden,
diff --git a/cabal-install/Distribution/Compat/Semaphore.hs b/cabal-install/Distribution/Client/Compat/Semaphore.hs
similarity index 96%
rename from cabal-install/Distribution/Compat/Semaphore.hs
rename to cabal-install/Distribution/Client/Compat/Semaphore.hs
index 53d1eb757280830c1d24c71386dda86a59199537..71e4c818c73f149b656515d0baaf5f8ae573d2a6 100644
--- a/cabal-install/Distribution/Compat/Semaphore.hs
+++ b/cabal-install/Distribution/Client/Compat/Semaphore.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# OPTIONS_GHC -funbox-strict-fields #-}
-module Distribution.Compat.Semaphore
+module Distribution.Client.Compat.Semaphore
     ( QSem
     , newQSem
     , waitQSem
@@ -13,7 +13,7 @@ import Control.Exception (onException)
 import Control.Monad (join, when)
 import Data.Typeable (Typeable)
 
-import Distribution.Compat.Exception (mask_)
+import Distribution.Client.Compat.Exception (mask_)
 
 -- | 'QSem' is a quantity semaphore in which the resource is aqcuired
 -- and released in units of one. It provides guaranteed FIFO ordering
diff --git a/cabal-install/Distribution/Compat/Time.hs b/cabal-install/Distribution/Client/Compat/Time.hs
similarity index 95%
rename from cabal-install/Distribution/Compat/Time.hs
rename to cabal-install/Distribution/Client/Compat/Time.hs
index 8ea8b71deb9f0ab764f7973e8750dbe1a2060b10..b79f1c9b966cace78a543ec077bb29e9838933e3 100644
--- a/cabal-install/Distribution/Compat/Time.hs
+++ b/cabal-install/Distribution/Client/Compat/Time.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE CPP, ForeignFunctionInterface #-}
-module Distribution.Compat.Time (EpochTime, getModTime, getFileAge, getCurTime)
+module Distribution.Client.Compat.Time
+       (EpochTime, getModTime, getFileAge, getCurTime)
        where
 
 import Data.Int (Int64)
@@ -65,7 +66,7 @@ getModTime path = withCString path $ \file ->
     if not res
       then do
         let err = mkIOError doesNotExistErrorType
-                  "Distribution.Compat.Time.getModTime"
+                  "Distribution.Client.Compat.Time.getModTime"
                   Nothing (Just path)
         ioError err
       else do
diff --git a/cabal-install/Distribution/Client/Config.hs b/cabal-install/Distribution/Client/Config.hs
index 77b3d5e7e132b684eb71cb1819101da3acfd9270..772ea70b7be745d8cc2263b10487c41306894b2b 100644
--- a/cabal-install/Distribution/Client/Config.hs
+++ b/cabal-install/Distribution/Client/Config.hs
@@ -104,7 +104,7 @@ import System.Environment
          ( getEnvironment )
 import System.IO.Error
          ( isDoesNotExistError )
-import Distribution.Compat.Exception
+import Distribution.Client.Compat.Exception
          ( catchIO )
 
 --
diff --git a/cabal-install/Distribution/Client/IndexUtils.hs b/cabal-install/Distribution/Client/IndexUtils.hs
index 9a2c4635786064c9488c1f89815ef37cc6f53d19..50950fe0fb55cd8999aeeeaf8758c12708716155 100644
--- a/cabal-install/Distribution/Client/IndexUtils.hs
+++ b/cabal-install/Distribution/Client/IndexUtils.hs
@@ -70,16 +70,17 @@ import qualified Data.ByteString.Char8 as BSS
 import Data.ByteString.Lazy (ByteString)
 import Distribution.Client.GZipUtils (maybeDecompress)
 import Distribution.Client.Utils (byteStringToFilePath)
+import Distribution.Client.Compat.Exception (catchIO)
+import Distribution.Client.Compat.Time
 import System.FilePath ((</>), takeExtension, splitDirectories, normalise)
 import System.FilePath.Posix as FilePath.Posix
          ( takeFileName )
 import System.IO
 import System.IO.Unsafe (unsafeInterleaveIO)
 import System.IO.Error (isDoesNotExistError)
-import Distribution.Compat.Exception (catchIO)
 import System.Directory
          ( getModificationTime, doesFileExist )
-import Distribution.Compat.Time
+
 
 
 getInstalledPackages :: Verbosity -> Compiler
diff --git a/cabal-install/Distribution/Client/Install.hs b/cabal-install/Distribution/Client/Install.hs
index 24068f9224c23f73812a9cbd90fdfd3f2bb135f3..2b84250a4f9fc9d05f3dbe99abfcc2db8a998b80 100644
--- a/cabal-install/Distribution/Client/Install.hs
+++ b/cabal-install/Distribution/Client/Install.hs
@@ -37,7 +37,7 @@ import Control.Exception as Exception
          , IOException, SomeException )
 import System.Exit
          ( ExitCode )
-import Distribution.Compat.Exception
+import Distribution.Client.Compat.Exception
          ( catchIO, catchExit )
 import Control.Monad
          ( when, unless )
diff --git a/cabal-install/Distribution/Client/InstallSymlink.hs b/cabal-install/Distribution/Client/InstallSymlink.hs
index b51a5fb14dd38ad174154b003c39973b2df165d8..c8eac4ed014c00611730f58a6ed088ac74f7cb38 100644
--- a/cabal-install/Distribution/Client/InstallSymlink.hs
+++ b/cabal-install/Distribution/Client/InstallSymlink.hs
@@ -65,7 +65,7 @@ import System.FilePath
 import Prelude hiding (ioError)
 import System.IO.Error
          ( isDoesNotExistError, ioError )
-import Distribution.Compat.Exception ( catchIO )
+import Distribution.Client.Compat.Exception ( catchIO )
 import Control.Exception
          ( assert )
 import Data.Maybe
diff --git a/cabal-install/Distribution/Client/JobControl.hs b/cabal-install/Distribution/Client/JobControl.hs
index 8073fc282565c0ec34ea602a8b55cb35cd935180..4f8229c00af211443c80314424d14fa7fec8e5a9 100644
--- a/cabal-install/Distribution/Client/JobControl.hs
+++ b/cabal-install/Distribution/Client/JobControl.hs
@@ -29,8 +29,8 @@ module Distribution.Client.JobControl (
 import Control.Monad
 import Control.Concurrent hiding (QSem, newQSem, waitQSem, signalQSem)
 import Control.Exception (SomeException, bracket_, throw, try)
-import Distribution.Compat.Exception (mask)
-import Distribution.Compat.Semaphore
+import Distribution.Client.Compat.Exception (mask)
+import Distribution.Client.Compat.Semaphore
 
 data JobControl m a = JobControl {
        spawnJob    :: m a -> m (),
diff --git a/cabal-install/Distribution/Client/Sandbox.hs b/cabal-install/Distribution/Client/Sandbox.hs
index 5c21fe5116db738ac3a3b484f84e9be3d62ebea6..8477fe60d627979c43835c6ea2a62c28370437c6 100644
--- a/cabal-install/Distribution/Client/Sandbox.hs
+++ b/cabal-install/Distribution/Client/Sandbox.hs
@@ -86,8 +86,8 @@ import Distribution.Package                   ( Package(..) )
 import Distribution.System                    ( Platform )
 import Distribution.Text                      ( display )
 import Distribution.Verbosity                 ( Verbosity, lessVerbose )
-import Distribution.Compat.Env                ( lookupEnv, setEnv )
-import Distribution.Compat.FilePerms          ( setFileHidden )
+import Distribution.Client.Compat.Environment ( lookupEnv, setEnv )
+import Distribution.Client.Compat.FilePerms   ( setFileHidden )
 import qualified Distribution.Client.Sandbox.Index as Index
 import qualified Distribution.Simple.PackageIndex  as InstalledPackageIndex
 import qualified Distribution.Simple.Register      as Register
diff --git a/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs b/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs
index db0a6145dac6cc984984f2b169393a9b1710660c..d4d41cbcd95eb34eeec5ca4c1a05a00019d94a7f 100644
--- a/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs
+++ b/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs
@@ -53,7 +53,8 @@ import Distribution.Verbosity          ( Verbosity, normal )
 import Control.Monad                   ( foldM, when, unless )
 import Data.List                       ( partition )
 import Data.Monoid                     ( Monoid(..) )
-import Distribution.Compat.Exception   ( catchIO )
+import Distribution.Client.Compat.Exception
+                                       ( catchIO )
 import System.Directory                ( doesDirectoryExist, doesFileExist,
                                          renameFile )
 import System.FilePath                 ( (<.>), (</>), takeDirectory )
diff --git a/cabal-install/Distribution/Client/Sandbox/Timestamp.hs b/cabal-install/Distribution/Client/Sandbox/Timestamp.hs
index 9650d56f1e84a1d5b6f660c040c028f2991ed439..a5b105d1741e46a9928b59a06bbfdf82f0cdc3b4 100644
--- a/cabal-install/Distribution/Client/Sandbox/Timestamp.hs
+++ b/cabal-install/Distribution/Client/Sandbox/Timestamp.hs
@@ -50,8 +50,8 @@ import Distribution.Client.SetupWrapper              (SetupScriptOptions (..),
 import Distribution.Client.Utils                     (inDir, removeExistingFile,
                                                       tryCanonicalizePath)
 
-import Distribution.Compat.Exception                 (catchIO)
-import Distribution.Compat.Time                      (EpochTime, getCurTime,
+import Distribution.Client.Compat.Exception          (catchIO)
+import Distribution.Client.Compat.Time               (EpochTime, getCurTime,
                                                       getModTime)
 
 
diff --git a/cabal-install/Distribution/Client/SetupWrapper.hs b/cabal-install/Distribution/Client/SetupWrapper.hs
index 4e279b2adcd1f1d9aba02c4b7ee383078dca08e9..68d94451fac96f8dd0b31a68dd5ce3a4dc57beca 100644
--- a/cabal-install/Distribution/Client/SetupWrapper.hs
+++ b/cabal-install/Distribution/Client/SetupWrapper.hs
@@ -78,7 +78,7 @@ import Distribution.Text
          ( display )
 import Distribution.Verbosity
          ( Verbosity )
-import Distribution.Compat.Exception
+import Distribution.Client.Compat.Exception
          ( catchIO )
 
 import System.Directory  ( doesFileExist )
diff --git a/cabal-install/Distribution/Client/Tar.hs b/cabal-install/Distribution/Client/Tar.hs
index c0d5841f8775e6101e907dd5fe0765ea1a0b32b6..06f7540e313f8871d8c682544809fded31faa91c 100644
--- a/cabal-install/Distribution/Client/Tar.hs
+++ b/cabal-install/Distribution/Client/Tar.hs
@@ -89,11 +89,11 @@ import System.Directory
          , getPermissions, createDirectoryIfMissing, copyFile )
 import qualified System.Directory as Permissions
          ( Permissions(executable) )
-import Distribution.Compat.FilePerms
+import Distribution.Client.Compat.FilePerms
          ( setFileExecutable )
 import System.Posix.Types
          ( FileMode )
-import Distribution.Compat.Time
+import Distribution.Client.Compat.Time
 import System.IO
          ( IOMode(ReadMode), openBinaryFile, hFileSize )
 import System.IO.Unsafe (unsafeInterleaveIO)
diff --git a/cabal-install/Distribution/Client/Utils.hs b/cabal-install/Distribution/Client/Utils.hs
index b025c1143f6d2bcc96d2d82097cb099c9f2dbc8c..e1347622753865270d60a0f3d0ce076377d043e7 100644
--- a/cabal-install/Distribution/Client/Utils.hs
+++ b/cabal-install/Distribution/Client/Utils.hs
@@ -9,7 +9,7 @@ module Distribution.Client.Utils ( MergeResult(..)
                                  , canonicalizePathNoThrow )
        where
 
-import Distribution.Compat.Exception ( catchIO )
+import Distribution.Client.Compat.Exception ( catchIO )
 import qualified Data.ByteString.Lazy as BS
 import Control.Monad
          ( when )
diff --git a/cabal-install/Distribution/Client/World.hs b/cabal-install/Distribution/Client/World.hs
index f77828e8050427eccbc19a9dd129169ab0fbf4d9..8ef77827b968fcac41fbbe60a37729b4167ca9b5 100644
--- a/cabal-install/Distribution/Client/World.hs
+++ b/cabal-install/Distribution/Client/World.hs
@@ -40,7 +40,7 @@ import Distribution.Simple.Utils
 import Distribution.Text
          ( Text(..), display, simpleParse )
 import qualified Distribution.Compat.ReadP as Parse
-import Distribution.Compat.Exception ( catchIO )
+import Distribution.Client.Compat.Exception ( catchIO )
 import qualified Text.PrettyPrint as Disp
 import Text.PrettyPrint ( (<>), (<+>) )
 
diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal
index d55e6b0d260bc0ef16b51a6599b670ecf09ff9bc..a787e14b2d7a8de67958e10d670096222fd0c4d6 100644
--- a/cabal-install/cabal-install.cabal
+++ b/cabal-install/cabal-install.cabal
@@ -105,11 +105,11 @@ executable cabal
         Distribution.Client.Utils
         Distribution.Client.World
         Distribution.Client.Win32SelfUpgrade
-        Distribution.Compat.Exception
-        Distribution.Compat.Env
-        Distribution.Compat.FilePerms
-        Distribution.Compat.Semaphore
-        Distribution.Compat.Time
+        Distribution.Client.Compat.Exception
+        Distribution.Client.Compat.Environment
+        Distribution.Client.Compat.FilePerms
+        Distribution.Client.Compat.Semaphore
+        Distribution.Client.Compat.Time
         Paths_cabal_install
 
     build-depends: