diff --git a/cabal-install/Distribution/Client/Sandbox.hs b/cabal-install/Distribution/Client/Sandbox.hs
index fdbab3819f4108da6efc12d8d4cbabee9b25b40f..2e9a570c2a3561ac13a6d89b9ae71acfbd89298d 100644
--- a/cabal-install/Distribution/Client/Sandbox.hs
+++ b/cabal-install/Distribution/Client/Sandbox.hs
@@ -72,7 +72,8 @@ import Distribution.Simple.Configure          ( configCompilerAux
                                               , getPackageDBContents )
 import Distribution.Simple.PreProcess         ( knownSuffixHandlers )
 import Distribution.Simple.Program            ( ProgramConfiguration )
-import Distribution.Simple.Setup              ( Flag(..), fromFlagOrDefault )
+import Distribution.Simple.Setup              ( Flag(..), HaddockFlags(..)
+                                              , fromFlagOrDefault )
 import Distribution.Simple.SrcDist            ( prepareTree )
 import Distribution.Simple.Utils              ( die, debug, notice, info, warn
                                               , debugNoWrap, defaultPackageDesc
@@ -467,8 +468,11 @@ reinstallAddSourceDeps :: Verbosity
                           -> IO WereDepsReinstalled
 reinstallAddSourceDeps verbosity config configFlags' configExFlags
                        installFlags globalFlags sandboxDir = topHandler' $ do
-  let configFlags       = configFlags'
-                          { configDistPref = Flag (sandboxBuildDir sandboxDir) }
+  let sandboxDistPref   = sandboxBuildDir sandboxDir
+      configFlags       = configFlags'
+                          { configDistPref  = Flag sandboxDistPref }
+      haddockFlags      = mempty
+                          { haddockDistPref = Flag sandboxDistPref }
   indexFile            <- tryGetIndexFilePath config
   buildTreeRefs        <- Index.listBuildTreeRefs verbosity
                           Index.DontListIgnored Index.OnlyLinks indexFile
@@ -494,7 +498,7 @@ reinstallAddSourceDeps verbosity config configFlags' configExFlags
                      ,(globalRepos globalFlags)
                      ,comp, platform, conf, Just sandboxPkgInfo
                      ,globalFlags, configFlags, configExFlags, installFlags
-                     ,mempty)
+                     ,haddockFlags)
 
           -- This can actually be replaced by a call to 'install', but we use a
           -- lower-level API because of layer separation reasons. Additionally,
diff --git a/cabal-install/Main.hs b/cabal-install/Main.hs
index 203b397862ea0b800a36936dd24bb80947bc58ca..3fbe0e213789a26c6b68a9d8c4e1c6eae1c3dfcc 100644
--- a/cabal-install/Main.hs
+++ b/cabal-install/Main.hs
@@ -470,13 +470,17 @@ installAction (configFlags, configExFlags, installFlags, haddockFlags)
                           (configUserInstall configFlags)
   targets <- readUserTargets verbosity extraArgs
 
-  let configFlags'   = savedConfigureFlags   config `mappend` configFlags
-      configExFlags' = defaultConfigExFlags         `mappend`
-                       savedConfigureExFlags config `mappend` configExFlags
-      installFlags'  = defaultInstallFlags          `mappend`
-                       savedInstallFlags     config `mappend` installFlags
+  let sandboxDistPref = case useSandbox of
+        NoSandbox             -> NoFlag
+        UseSandbox sandboxDir -> Flag $ sandboxBuildDir sandboxDir
+      configFlags'    = savedConfigureFlags   config `mappend` configFlags
+      configExFlags'  = defaultConfigExFlags         `mappend`
+                        savedConfigureExFlags config `mappend` configExFlags
+      installFlags'   = defaultInstallFlags          `mappend`
+                        savedInstallFlags     config `mappend` installFlags
                        { installUseSandbox = useSandbox }
-      globalFlags'   = savedGlobalFlags      config `mappend` globalFlags
+      globalFlags'    = savedGlobalFlags      config `mappend` globalFlags
+      haddockFlags'   = haddockFlags { haddockDistPref = sandboxDistPref }
   (comp, platform, conf) <- configCompilerAux' configFlags'
 
   -- If we're working inside a sandbox and the user has set the -w option, we
@@ -486,7 +490,7 @@ installAction (configFlags, configExFlags, installFlags, haddockFlags)
         NoSandbox               -> configAbsolutePaths $ configFlags'
         (UseSandbox sandboxDir) ->
           return $ (setPackageDB sandboxDir comp platform configFlags') {
-            configDistPref = Flag (sandboxBuildDir sandboxDir)
+            configDistPref = sandboxDistPref
             }
 
   whenUsingSandbox useSandbox $ \sandboxDir -> do
@@ -514,7 +518,7 @@ installAction (configFlags, configExFlags, installFlags, haddockFlags)
             (globalRepos globalFlags')
             comp platform conf
             Nothing -- FIXME
-            globalFlags' configFlags'' configExFlags' installFlags' haddockFlags
+            globalFlags' configFlags'' configExFlags' installFlags' haddockFlags'
             targets
 
 testAction :: (TestFlags, BuildExFlags) -> [String] -> GlobalFlags -> IO ()