diff --git a/cabal-install/Hackage/Setup.hs b/cabal-install/Hackage/Setup.hs
index 8548fdef81f91558c0a8a5f76809da8ba26179f0..7d12ddd8c723c9a75ccfc3cbe001456dc52857ec 100644
--- a/cabal-install/Hackage/Setup.hs
+++ b/cabal-install/Hackage/Setup.hs
@@ -12,6 +12,7 @@
 -----------------------------------------------------------------------------
 module Hackage.Setup
     ( globalCommand, Cabal.GlobalFlags(..)
+    , configureCommand
     , installCommand --Cabal.InstallFlags(..)
     , listCommand
     , updateCommand
@@ -61,6 +62,11 @@ globalCommand = Cabal.globalCommand {
       ++ "\nSee http://www.haskell.org/cabal/ for more information.\n"
   }
 
+configureCommand :: CommandUI Cabal.ConfigFlags
+configureCommand = (Cabal.configureCommand defaultProgramConfiguration) {
+    commandDefaultFlags = mempty
+  }
+
 installCommand :: CommandUI Cabal.ConfigFlags
 installCommand = (Cabal.configureCommand defaultProgramConfiguration) {
     commandName         = "install",
diff --git a/cabal-install/Main.hs b/cabal-install/Main.hs
index b1231058dcdbfe36de05bec56e76e4a2aae413b5..583679571bb6dbbb7f48d79d4fed23020efc4e63 100644
--- a/cabal-install/Main.hs
+++ b/cabal-install/Main.hs
@@ -78,7 +78,8 @@ mainWorker args =
                                   ++ " of the Cabal library "
 
     commands =
-      [installCommand         `commandAddAction` installAction
+      [configureCommand       `commandAddAction` configureAction
+      ,installCommand         `commandAddAction` installAction
       ,infoCommand            `commandAddAction` infoAction
       ,listCommand            `commandAddAction` listAction
       ,updateCommand          `commandAddAction` updateAction
@@ -86,7 +87,6 @@ mainWorker args =
       ,fetchCommand           `commandAddAction` fetchAction
       ,uploadCommand          `commandAddAction` uploadAction
 
-      ,wrapperAction (Cabal.configureCommand defaultProgramConfiguration)
       ,wrapperAction (Cabal.buildCommand     defaultProgramConfiguration)
       ,wrapperAction Cabal.copyCommand
       ,wrapperAction Cabal.haddockCommand
@@ -106,6 +106,17 @@ wrapperAction command =
   let args = commandName command : commandShowOptions command flags ++ extraArgs
    in setupWrapper args Nothing
 
+configureAction :: Cabal.ConfigFlags -> [String] -> IO ()
+configureAction flags extraArgs = do
+  configFile <- defaultConfigFile --FIXME
+  let verbosity = fromFlagOrDefault normal (Cabal.configVerbose flags)
+  config <- loadConfig verbosity configFile
+  let flags' = savedConfigToConfigFlags (Cabal.configPackageDB flags) config
+               `mappend` flags
+      args = commandName configureCommand
+           : commandShowOptions configureCommand flags' ++ extraArgs
+  setupWrapper args Nothing
+
 installAction :: Cabal.ConfigFlags -> [String] -> IO ()
 installAction flags extraArgs = do
   pkgs <- either die return (parsePackageArgs extraArgs)