diff --git a/Distribution/Client/Setup.hs b/Distribution/Client/Setup.hs
--- a/Distribution/Client/Setup.hs
+++ b/Distribution/Client/Setup.hs
@@ -382,7 +382,14 @@
     flags_latest = flags        { configConstraints = [] }
 
     -- Cabal < 1.21.1 doesn't know about 'disable-relocatable'
-    flags_1_20_0 = flags_latest { configRelocatable = NoFlag }
+    -- Cabal < 1.21.1 doesn't know about 'enable-profiling'
+    flags_1_20_0 =
+      flags_latest { configRelocatable = NoFlag
+                   , configProfExe = configProfExe flags
+                   , configProfLib = configProfLib flags
+                   , configCoverage = NoFlag
+                   , configLibCoverage = configCoverage flags
+                   }
     -- Cabal < 1.19.2 doesn't know about '--exact-configuration'.
     flags_1_19_1 = flags_1_20_0 { configExactConfiguration = NoFlag }
     -- Cabal < 1.19.1 uses '--constraint' instead of '--dependency'.
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -111,7 +111,8 @@
                                               ,existsAndIsMoreRecentThan)
 
 import Distribution.PackageDescription
-         ( Executable(..), benchmarkName, testName )
+         ( Executable(..), benchmarkName, benchmarkBuildInfo, testName
+         , testBuildInfo, buildable )
 import Distribution.PackageDescription.Parse
          ( readPackageDescription )
 import Distribution.PackageDescription.PrettyPrint
@@ -730,21 +731,29 @@
   -- the package was just configured, so the LBI must be available
   lbi <- getPersistBuildConfig distPref
   let pkgDescr = LBI.localPkgDescr lbi
-      nameTestsOnly = LBI.foldComponent (const Nothing)
-                                        (const Nothing)
-                                        (Just . testName)
-                                        (const Nothing)
+      nameTestsOnly =
+        LBI.foldComponent
+          (const Nothing)
+          (const Nothing)
+          (\t ->
+            if buildable (testBuildInfo t)
+              then Just (testName t)
+            else Nothing)
+          (const Nothing)
       tests = mapMaybe nameTestsOnly $ LBI.pkgComponents pkgDescr
       extraArgs'
         | null extraArgs = tests
         | otherwise = extraArgs
 
-  maybeWithSandboxDirOnSearchPath useSandbox $
-    build verbosity config distPref buildFlags' extraArgs'
+  if null tests
+    then notice verbosity "Package has no buildable test suites."
+    else do
+      maybeWithSandboxDirOnSearchPath useSandbox $
+        build verbosity config distPref buildFlags' extraArgs'
 
-  maybeWithSandboxDirOnSearchPath useSandbox $
-    setupWrapper verbosity setupOptions Nothing
-      Cabal.testCommand (const testFlags) extraArgs'
+      maybeWithSandboxDirOnSearchPath useSandbox $
+        setupWrapper verbosity setupOptions Nothing
+          Cabal.testCommand (const testFlags) extraArgs'
 
 benchmarkAction :: (BenchmarkFlags, BuildFlags, BuildExFlags)
                    -> [String] -> GlobalFlags
@@ -775,21 +784,29 @@
   -- the package was just configured, so the LBI must be available
   lbi <- getPersistBuildConfig distPref
   let pkgDescr = LBI.localPkgDescr lbi
-      nameBenchsOnly = LBI.foldComponent (const Nothing)
-                                         (const Nothing)
-                                         (const Nothing)
-                                         (Just . benchmarkName)
+      nameBenchsOnly =
+        LBI.foldComponent
+          (const Nothing)
+          (const Nothing)
+          (const Nothing)
+          (\b ->
+            if buildable (benchmarkBuildInfo b)
+              then Just (benchmarkName b)
+            else Nothing)
       benchs = mapMaybe nameBenchsOnly $ LBI.pkgComponents pkgDescr
       extraArgs'
         | null extraArgs = benchs
         | otherwise = extraArgs
 
-  maybeWithSandboxDirOnSearchPath useSandbox $
-    build verbosity config distPref buildFlags' extraArgs'
+  if null benchs
+    then notice verbosity "Package has no buildable benchmarks."
+    else do
+      maybeWithSandboxDirOnSearchPath useSandbox $
+        build verbosity config distPref buildFlags' extraArgs'
 
-  maybeWithSandboxDirOnSearchPath useSandbox $
-    setupWrapper verbosity setupOptions Nothing
-      Cabal.benchmarkCommand (const benchmarkFlags) extraArgs'
+      maybeWithSandboxDirOnSearchPath useSandbox $
+        setupWrapper verbosity setupOptions Nothing
+          Cabal.benchmarkCommand (const benchmarkFlags) extraArgs'
 
 haddockAction :: HaddockFlags -> [String] -> GlobalFlags -> IO ()
 haddockAction haddockFlags extraArgs globalFlags = do
diff --git a/bootstrap.sh b/bootstrap.sh
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -190,7 +190,7 @@
                        # >= 2.0 && < 2.7
 NETWORK_URI_VER="2.6.0.1"; NETWORK_URI_VER_REGEXP="2\.6\."
                        # >= 2.6 && < 2.7
-CABAL_VER="1.22.0.0";  CABAL_VER_REGEXP="1\.22"
+CABAL_VER="1.22.1.0";  CABAL_VER_REGEXP="1\.22"
                        # >= 1.22 && < 1.23
 TRANS_VER="0.4.2.0";   TRANS_VER_REGEXP="0\.[4]\."
                        # >= 0.2.* && < 0.5
diff --git a/cabal-install.cabal b/cabal-install.cabal
--- a/cabal-install.cabal
+++ b/cabal-install.cabal
@@ -1,5 +1,5 @@
 Name:               cabal-install
-Version:            1.22.0.0
+Version:            1.22.0.1
 Synopsis:           The command-line interface for Cabal and Hackage.
 Description:
     The \'cabal\' command-line program simplifies the process of managing
@@ -153,7 +153,7 @@
     if flag(network-uri)
       build-depends: network-uri >= 2.6, network >= 2.6
     else
-      build-depends: network     >= 2.0 && < 2.6
+      build-depends: network     >= 2.4 && < 2.6
 
     if os(windows)
       build-depends: Win32 >= 2 && < 3
