diff --git a/etc/spack/defaults/config.yaml b/etc/spack/defaults/config.yaml
index 32745a309a142915d2eb04c54a08c5a09a66895d..cc51060eae350bfc6c425e49466d1c34b0666fe1 100644
--- a/etc/spack/defaults/config.yaml
+++ b/etc/spack/defaults/config.yaml
@@ -75,6 +75,12 @@ config:
   misc_cache: ~/.spack/cache
 
 
+  # Timeout in seconds used for downloading sources etc. This only applies
+  # to the connection phase and can be increased for slow connections or
+  # servers. 0 means no timeout.
+  connect_timeout: 10
+
+
   # If this is false, tools like curl that use SSL will not verify
   # certifiates. (e.g., curl will use use the -k option)
   verify_ssl: true
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index b1c0ad73c7abc346d87d64681b8f5a1606f0fae6..7ed47340bfbd64c7a2bf7e7ead6d81f6f85fb78b 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -97,6 +97,7 @@
 config_defaults = {
     'config': {
         'debug': False,
+        'connect_timeout': 10,
         'verify_ssl': True,
         'checksum': True,
         'dirty': False,
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index 5ae01286c4b68ad62c74276bf814b13c91fd663c..38ed17d28e271d190808651f970b872aade340c5 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -326,11 +326,15 @@ def _fetch_from_url(self, url):
             '-D',
             '-',  # print out HTML headers
             '-L',  # resolve 3xx redirects
-            # Timeout if can't establish a connection after 10 sec.
-            '--connect-timeout', '10',
             url,
         ]
 
+        connect_timeout = spack.config.get('config:connect_timeout')
+
+        if connect_timeout > 0:
+            # Timeout if can't establish a connection after n sec.
+            curl_args.extend(['--connect-timeout', str(connect_timeout)])
+
         if not spack.config.get('config:verify_ssl'):
             curl_args.append('-k')
 
diff --git a/lib/spack/spack/schema/config.py b/lib/spack/spack/schema/config.py
index 1378698825eeaf79467671542c825430c2f7e308..a05af2f4384dd1ea84836b8b4efc55d83d8ead38 100644
--- a/lib/spack/spack/schema/config.py
+++ b/lib/spack/spack/schema/config.py
@@ -55,6 +55,7 @@
             },
             'source_cache': {'type': 'string'},
             'misc_cache': {'type': 'string'},
+            'connect_timeout': {'type': 'integer', 'minimum': 0},
             'verify_ssl': {'type': 'boolean'},
             'suppress_gpg_warnings': {'type': 'boolean'},
             'install_missing_compilers': {'type': 'boolean'},