diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index 6afd69b3ac7f8db3fde0f52c68b0e0834b624626..6ef79c70b15c4e3ec94205c488cf1a9269b2964f 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -237,7 +237,29 @@
                                 'type' : 'object',
                                 'default' : {},
                             }
-                        },},},},},}
+                        },},},},},},
+    'modules': {
+        '$schema': 'http://json-schema.org/schema#',
+        'title': 'Spack module file configuration file schema',
+        'type': 'object',
+        'additionalProperties': False,
+        'patternProperties': {
+            r'modules:?': {
+                'type': 'object',
+                'default': {},
+                'additionalProperties': False,
+                'properties': {
+                    'disable': {
+                        'type': 'array',
+                        'default': [],
+                        'items': {
+                            'type': 'string'
+                        }
+                    }
+                }
+            },
+        },
+    },
 }
 
 """OrderedDict of config scopes keyed by name.
@@ -405,11 +427,11 @@ def _read_config_file(filename, schema):
             validate_section(data, schema)
         return data
 
-    except MarkedYAMLError, e:
+    except MarkedYAMLError as e:
         raise ConfigFileError(
             "Error parsing yaml%s: %s" % (str(e.context_mark), e.problem))
 
-    except IOError, e:
+    except IOError as e:
         raise ConfigFileError(
             "Error reading configuration file %s: %s" % (filename, str(e)))
 
diff --git a/lib/spack/spack/modules.py b/lib/spack/spack/modules.py
index 8ed98e5d38f469b800f4dfbd2f1a7701795ccf80..639f1101b82e5fadb627506db8c225879ec11d35 100644
--- a/lib/spack/spack/modules.py
+++ b/lib/spack/spack/modules.py
@@ -48,6 +48,7 @@
 
 import llnl.util.tty as tty
 import spack
+import spack.config
 from llnl.util.filesystem import join_path, mkdirp
 from spack.environment import *
 
@@ -57,6 +58,13 @@
 module_types = {}
 
 
+def read_configuration_file():
+    f = spack.config.get_config('modules')
+    f.setdefault('disable', [])  # Default : disable nothing
+    return f
+
+CONFIGURATION = read_configuration_file()
+
 def print_help():
     """For use by commands to tell user how to activate shell support."""
 
@@ -115,8 +123,8 @@ class EnvModule(object):
     class __metaclass__(type):
         def __init__(cls, name, bases, dict):
             type.__init__(cls, name, bases, dict)
-            if cls.name != 'env_module':
-                module_types[cls.name] = cls
+            if cls.name != 'env_module' and cls.name not in CONFIGURATION['disable']:
+                    module_types[cls.name] = cls
 
     def __init__(self, spec=None):
         self.spec = spec