diff --git a/django/conf/__init__.py b/django/conf/__init__.py
index 61d9ff7..6fdb3c1 100644
--- a/django/conf/__init__.py
+++ b/django/conf/__init__.py
@@ -9,6 +9,7 @@ a list of all possible variables.
 import os
 import time     # Needed for Windows
 from django.conf import global_settings
+from warnings import warn
 
 ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
 
@@ -90,6 +91,14 @@ class Settings(object):
         # as strings.
         tuple_settings = ("INSTALLED_APPS", "TEMPLATE_DIRS")
 
+        # If DEFAULT_CHARSET is specified, populate OUTPUT_CHARSET from it.
+        try:
+            setattr(self, "OUTPUT_CHARSET", getattr(mod, "DEFAULT_CHARSET"))
+            warn("DEFAULT_CHARSET is deprecated. Use OUTPUT_CHARSET instead.",
+                DeprecationWarning, stacklevel=3)
+        except AttributeError, e:
+            pass
+
         for setting in dir(mod):
             if setting == setting.upper():
                 setting_value = getattr(mod, setting)
@@ -97,6 +106,7 @@ class Settings(object):
                     setting_value = (setting_value,) # In case the user forgot the comma.
                 setattr(self, setting, setting_value)
 
+
         # Expand entries in INSTALLED_APPS like "django.contrib.*" to a list
         # of all those apps.
         new_installed_apps = []
diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py
index 6be789a..287b8b9 100644
--- a/django/conf/global_settings.py
+++ b/django/conf/global_settings.py
@@ -102,7 +102,7 @@ MANAGERS = ADMINS
 # MIME type isn't manually specified. These are used to construct the
 # Content-Type header.
 DEFAULT_CONTENT_TYPE = 'text/html'
-DEFAULT_CHARSET = 'utf-8'
+OUTPUT_CHARSET = 'utf-8'
 
 # Encoding of files read from disk (template and initial SQL files).
 FILE_CHARSET = 'utf-8'
diff --git a/django/core/mail.py b/django/core/mail.py
index 72343cb..5ba545e 100644
--- a/django/core/mail.py
+++ b/django/core/mail.py
@@ -78,11 +78,11 @@ def forbid_multi_line_headers(name, val):
             result = []
             for item in val.split(', '):
                 nm, addr = parseaddr(item)
-                nm = str(Header(nm, settings.DEFAULT_CHARSET))
+                nm = str(Header(nm, settings.OUTPUT_CHARSET))
                 result.append(formataddr((nm, str(addr))))
             val = ', '.join(result)
         else:
-            val = Header(force_unicode(val), settings.DEFAULT_CHARSET)
+            val = Header(force_unicode(val), settings.OUTPUT_CHARSET)
     return name, val
 
 class SafeMIMEText(MIMEText):
@@ -220,8 +220,8 @@ class EmailMessage(object):
         return self.connection
 
     def message(self):
-        encoding = self.encoding or settings.DEFAULT_CHARSET
-        msg = SafeMIMEText(smart_str(self.body, settings.DEFAULT_CHARSET), self.content_subtype, encoding)
+        encoding = self.encoding or settings.OUTPUT_CHARSET
+        msg = SafeMIMEText(smart_str(self.body, settings.OUTPUT_CHARSET), self.content_subtype, encoding)
         if self.attachments:
             body_msg = msg
             msg = SafeMIMEMultipart(_subtype=self.multipart_subtype)
@@ -288,7 +288,7 @@ class EmailMessage(object):
         basetype, subtype = mimetype.split('/', 1)
         if basetype == 'text':
             attachment = SafeMIMEText(smart_str(content,
-                settings.DEFAULT_CHARSET), subtype, settings.DEFAULT_CHARSET)
+                settings.OUTPUT_CHARSET), subtype, settings.OUTPUT_CHARSET)
         else:
             # Encode non-text attachments with base64.
             attachment = MIMEBase(basetype, subtype)
diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py
index cedab06..02e5636 100644
--- a/django/core/serializers/python.py
+++ b/django/core/serializers/python.py
@@ -72,7 +72,7 @@ def Deserializer(object_list, **options):
         # Handle each field
         for (field_name, field_value) in d["fields"].iteritems():
             if isinstance(field_value, str):
-                field_value = smart_unicode(field_value, options.get("encoding", settings.DEFAULT_CHARSET), strings_only=True)
+                field_value = smart_unicode(field_value, options.get("encoding", settings.OUTPUT_CHARSET), strings_only=True)
 
             field = Model._meta.get_field(field_name)
 
diff --git a/django/core/serializers/xml_serializer.py b/django/core/serializers/xml_serializer.py
index 667faf7..fa0c794 100644
--- a/django/core/serializers/xml_serializer.py
+++ b/django/core/serializers/xml_serializer.py
@@ -22,7 +22,7 @@ class Serializer(base.Serializer):
         """
         Start serialization -- open the XML document and the root element.
         """
-        self.xml = SimplerXMLGenerator(self.stream, self.options.get("encoding", settings.DEFAULT_CHARSET))
+        self.xml = SimplerXMLGenerator(self.stream, self.options.get("encoding", settings.OUTPUT_CHARSET))
         self.xml.startDocument()
         self.xml.startElement("django-objects", {"version" : "1.0"})
 
diff --git a/django/http/__init__.py b/django/http/__init__.py
index 5439aa6..307dc83 100644
--- a/django/http/__init__.py
+++ b/django/http/__init__.py
@@ -139,7 +139,7 @@ class QueryDict(MultiValueDict):
     This is immutable unless you create a copy of it.
 
     Values retrieved from this class are converted from the given encoding
-    (DEFAULT_CHARSET by default) to unicode.
+    (OUTPUT_CHARSET by default) to unicode.
     """
     def __init__(self, query_string, mutable=False, encoding=None):
         MultiValueDict.__init__(self)
@@ -147,7 +147,7 @@ class QueryDict(MultiValueDict):
             # *Important*: do not import settings any earlier because of note
             # in core.handlers.modpython.
             from django.conf import settings
-            encoding = settings.DEFAULT_CHARSET
+            encoding = settings.OUTPUT_CHARSET
         self.encoding = encoding
         self._mutable = True
         for key, value in parse_qsl((query_string or ''), True): # keep_blank_values=True
@@ -259,12 +259,12 @@ class HttpResponse(object):
     def __init__(self, content='', mimetype=None, status=None,
             content_type=None):
         from django.conf import settings
-        self._charset = settings.DEFAULT_CHARSET
+        self._charset = settings.OUTPUT_CHARSET
         if mimetype:
             content_type = mimetype     # For backwards compatibility
         if not content_type:
             content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE,
-                    settings.DEFAULT_CHARSET)
+                    settings.OUTPUT_CHARSET)
         if not isinstance(content, basestring) and hasattr(content, '__iter__'):
             self._container = content
             self._is_string = False
diff --git a/django/test/client.py b/django/test/client.py
index 67d3aa9..af2699f 100644
--- a/django/test/client.py
+++ b/django/test/client.py
@@ -61,7 +61,7 @@ def encode_multipart(boundary, data):
     as an application/octet-stream; otherwise, str(value) will be sent.
     """
     lines = []
-    to_str = lambda s: smart_str(s, settings.DEFAULT_CHARSET)
+    to_str = lambda s: smart_str(s, settings.OUTPUT_CHARSET)
     for (key, value) in data.items():
         if isinstance(value, file):
             lines.extend([
diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py
index bcc5e4b..537a44c 100644
--- a/django/utils/translation/trans_real.py
+++ b/django/utils/translation/trans_real.py
@@ -65,7 +65,7 @@ def to_language(locale):
 class DjangoTranslation(gettext_module.GNUTranslations):
     """
     This class sets up the GNUTranslations context with regard to output
-    charset. Django uses a defined DEFAULT_CHARSET as the output charset on
+    charset. Django uses a defined OUTPUT_CHARSET as the output charset on
     Python 2.4. With Python 2.3, use DjangoTranslation23.
     """
     def __init__(self, *args, **kw):
diff --git a/docs/email.txt b/docs/email.txt
index 7f2eef6..7ea9843 100644
--- a/docs/email.txt
+++ b/docs/email.txt
@@ -28,9 +28,9 @@ settings, if set, are used to authenticate to the SMTP server, and the
 .. note::
 
     The character set of e-mail sent with ``django.core.mail`` will be set to
-    the value of your `DEFAULT_CHARSET`_ setting.
+    the value of your `OUTPUT_CHARSET`_ setting.
 
-.. _DEFAULT_CHARSET: ../settings/#default-charset
+.. _OUTPUT_CHARSET: ../settings/#output-charset
 .. _EMAIL_HOST: ../settings/#email-host
 .. _EMAIL_PORT: ../settings/#email-port
 .. _EMAIL_HOST_USER: ../settings/#email-host-user
diff --git a/docs/request_response.txt b/docs/request_response.txt
index 4dcdf10..cca6975 100644
--- a/docs/request_response.txt
+++ b/docs/request_response.txt
@@ -42,11 +42,11 @@ All attributes except ``session`` should be considered read-only.
     **New in Django development version**
 
     A string representing the current encoding used to decode form submission
-    data (or ``None``, which means the ``DEFAULT_CHARSET`` setting is used).
+    data (or ``None``, which means the ``OUTPUT_CHARSET`` setting is used).
     You can write to this attribute to change the encoding used when accessing
     the form data. Any subsequent attribute accesses (such as reading from
     ``GET`` or ``POST``) will use the new ``encoding`` value.  Useful if you
-    know the form data is not in the ``DEFAULT_CHARSET`` encoding.
+    know the form data is not in the ``OUTPUT_CHARSET`` encoding.
 
 ``GET``
     A dictionary-like object containing all given HTTP GET parameters. See the
diff --git a/docs/settings.txt b/docs/settings.txt
index fb2e04f..f509ca7 100644
--- a/docs/settings.txt
+++ b/docs/settings.txt
@@ -394,11 +394,7 @@ site with ``DEBUG`` turned on.
 DEFAULT_CHARSET
 ---------------
 
-Default: ``'utf-8'``
-
-Default charset to use for all ``HttpResponse`` objects, if a MIME type isn't
-manually specified. Used with ``DEFAULT_CONTENT_TYPE`` to construct the
-``Content-Type`` header.
+``DEFAULT_CHARSET`` has been deprecated in favor of ``OUTPUT_CHARSET``.
 
 DEFAULT_CONTENT_TYPE
 --------------------
@@ -406,7 +402,7 @@ DEFAULT_CONTENT_TYPE
 Default: ``'text/html'``
 
 Default content type to use for all ``HttpResponse`` objects, if a MIME type
-isn't manually specified. Used with ``DEFAULT_CHARSET`` to construct the
+isn't manually specified. Used with ``OUTPUT_CHARSET`` to construct the
 ``Content-Type`` header.
 
 DEFAULT_FROM_EMAIL
@@ -733,6 +729,17 @@ locales have different formats. For example, U.S. English would say
 See `allowed date format strings`_. See also ``DATE_FORMAT``,
 ``DATETIME_FORMAT``, ``TIME_FORMAT`` and ``YEAR_MONTH_FORMAT``.
 
+OUTPUT_CHARSET
+--------------
+
+**New in Django development version**
+
+Default: ``'utf-8'``
+
+Default charset to use for all ``HttpResponse`` objects, if a MIME type isn't
+manually specified. Used with ``DEFAULT_CONTENT_TYPE`` to construct the
+``Content-Type`` header. This setting deprecates ``DEFAULT_CHARSET``.
+
 PREPEND_WWW
 -----------
 
diff --git a/docs/templates_python.txt b/docs/templates_python.txt
index 43ef016..e940c81 100644
--- a/docs/templates_python.txt
+++ b/docs/templates_python.txt
@@ -1453,7 +1453,7 @@ pieces of the templating system and then, *before* you call any of the
 templating functions, call ``django.conf.settings.configure()`` with any
 settings you wish to specify. You might want to consider setting at least
 ``TEMPLATE_DIRS`` (if you're going to use template loaders),
-``DEFAULT_CHARSET`` (although the default of ``utf-8`` is probably fine) and
+``OUTPUT_CHARSET`` (although the default of ``utf-8`` is probably fine) and
 ``TEMPLATE_DEBUG``. All available settings are described in the
 `settings documentation`_, and any setting starting with *TEMPLATE_*
 is of obvious interest.
diff --git a/docs/unicode.txt b/docs/unicode.txt
index a2c4e7f..cbbef2b 100644
--- a/docs/unicode.txt
+++ b/docs/unicode.txt
@@ -60,12 +60,12 @@ You can use Unicode strings, or you can use normal strings (sometimes called
 If your code only uses ASCII data, it's safe to use your normal strings,
 passing them around at will, because ASCII is a subset of UTF-8.
 
-Don't be fooled into thinking that if your ``DEFAULT_CHARSET`` setting is set
+Don't be fooled into thinking that if your ``OUTPUT_CHARSET`` setting is set
 to something other than ``'utf-8'`` you can use that other encoding in your
-bytestrings! ``DEFAULT_CHARSET`` only applies to the strings generated as
+bytestrings! ``OUTPUT_CHARSET`` only applies to the strings generated as
 the result of template rendering (and e-mail). Django will always assume UTF-8
 encoding for internal bytestrings. The reason for this is that the
-``DEFAULT_CHARSET`` setting is not actually under your control (if you are the
+``OUTPUT_CHARSET`` setting is not actually under your control (if you are the
 application developer). It's under the control of the person installing and
 using your application -- and if that person chooses a different setting, your
 code must still continue to work. Ergo, it cannot rely on that setting.
@@ -293,7 +293,7 @@ setting to the encoding of the files on disk. When Django reads in a template
 file, it will convert the data from this encoding to Unicode. (``FILE_CHARSET``
 is set to ``'utf-8'`` by default.)
 
-The ``DEFAULT_CHARSET`` setting controls the encoding of rendered templates.
+The ``OUTPUT_CHARSET`` setting controls the encoding of rendered templates.
 This is set to UTF-8 by default.
 
 Template tags and filters
@@ -345,7 +345,7 @@ two fields will return their members as Unicode data. All other attributes and
 methods of ``HttpRequest`` return data exactly as it was submitted by the
 client.
 
-By default, the ``DEFAULT_CHARSET`` setting is used as the assumed encoding
+By default, the ``OUTPUT_CHARSET`` setting is used as the assumed encoding
 for form data. If you need to change this for a particular form, you can set
 the ``encoding`` attribute on an ``HttpRequest`` instance. For example::
 
