Index: django/conf/__init__.py
===================================================================
--- django/conf/__init__.py	(revision 6783)
+++ django/conf/__init__.py	(working copy)
@@ -10,6 +10,9 @@
 import time     # Needed for Windows
 from django.conf import global_settings
 
+class ConfigurationError(ImportError, EnvironmentError):
+    pass
+
 ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
 
 class LazySettings(object):
@@ -52,7 +55,7 @@
             if not settings_module: # If it's set but is an empty string.
                 raise KeyError
         except KeyError:
-            raise EnvironmentError, "Environment variable %s is undefined." % ENVIRONMENT_VARIABLE
+            raise ConfigurationError, "Environment variable %s is undefined." % ENVIRONMENT_VARIABLE
 
         self._target = Settings(settings_module)
 
@@ -63,7 +66,7 @@
         argument must support attribute access (__getattr__)).
         """
         if self._target != None:
-            raise EnvironmentError, 'Settings already configured.'
+            raise ConfigurationError, 'Settings already configured.'
         holder = UserSettingsHolder(default_settings)
         for name, value in options.items():
             setattr(holder, name, value)
@@ -81,8 +84,8 @@
 
         try:
             mod = __import__(self.SETTINGS_MODULE, {}, {}, [''])
-        except ImportError, e:
-            raise EnvironmentError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
+        except ConfigurationError, e:
+            raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
 
         # Settings that should be converted into tuples if they're mistakenly entered
         # as strings.
Index: django/core/management/__init__.py
===================================================================
--- django/core/management/__init__.py	(revision 6783)
+++ django/core/management/__init__.py	(working copy)
@@ -4,6 +4,7 @@
 from imp import find_module
 
 import django
+from django.conf import ConfigurationError
 from django.core.management.base import BaseCommand, CommandError, handle_default_options
 
 # For backwards compatibility: get_version() used to be in this module.
@@ -84,7 +85,7 @@
         try:
             from django.conf import settings
             apps = settings.INSTALLED_APPS
-        except (AttributeError, EnvironmentError):
+        except (AttributeError, ConfigurationError):
             apps = []
 
         for app_name in apps:
@@ -99,7 +100,7 @@
         try:
             from django.conf import settings
             project_directory = setup_environ(__import__(settings.SETTINGS_MODULE))
-        except (AttributeError, EnvironmentError, ImportError):
+        except (AttributeError, ConfigurationError, ImportError):
             project_directory = None
 
         if project_directory:
Index: django/newforms/fields.py
===================================================================
--- django/newforms/fields.py	(revision 6783)
+++ django/newforms/fields.py	(working copy)
@@ -16,6 +16,7 @@
 except NameError:
     from sets import Set as set
 
+from django.conf import ConfigurationError
 from django.utils.translation import ugettext_lazy as _
 from django.utils.encoding import StrAndUnicode, smart_unicode, smart_str
 
@@ -415,7 +416,7 @@
 try:
     from django.conf import settings
     URL_VALIDATOR_USER_AGENT = settings.URL_VALIDATOR_USER_AGENT
-except (ImportError, EnvironmentError):
+except (ImportError, ConfigurationError):
     # It's OK if Django settings aren't configured.
     URL_VALIDATOR_USER_AGENT = 'Django (http://www.djangoproject.com/)'
 
Index: docs/settings.txt
===================================================================
--- docs/settings.txt	(revision 6783)
+++ docs/settings.txt	(working copy)
@@ -1129,12 +1129,12 @@
 settings.
 
 If you don't set ``DJANGO_SETTINGS_MODULE`` and don't call ``configure()``,
-Django will raise an ``EnvironmentError`` exception the first time a setting
-is accessed.
+Django will raise an ``django.conf.ConfigurationError`` exception the first
+time a setting is accessed.
 
 If you set ``DJANGO_SETTINGS_MODULE``, access settings values somehow, *then*
-call ``configure()``, Django will raise an ``EnvironmentError`` saying settings
-have already been configured.
+call ``configure()``, Django will raise an ``django.conf.ConfigurationError``
+saying settings have already been configured.
 
 Also, it's an error to call ``configure()`` more than once, or to call
 ``configure()`` after any setting has been accessed.
