Index: django/http/__init__.py
===================================================================
--- django/http/__init__.py	(revision 8785)
+++ django/http/__init__.py	(working copy)
@@ -269,14 +269,16 @@
     status_code = 200
 
     def __init__(self, content='', mimetype=None, status=None,
-            content_type=None):
+            content_type=None, charset=None):
         from django.conf import settings
-        self._charset = settings.DEFAULT_CHARSET
-        if mimetype:
-            content_type = mimetype     # For backwards compatibility
+        self._charset = charset
+        if not self._charset:
+            self._charset = settings.DEFAULT_CHARSET
         if not content_type:
-            content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE,
-                    settings.DEFAULT_CHARSET)
+            if not mimetype:
+                mimetype = settings.DEFAULT_CONTENT_TYPE # Maybe we should call it settings.DEFAULT_MIMETYPE?
+            content_type = "%s; charset=%s" % (mimetype,
+                    self._charset)
         if not isinstance(content, basestring) and hasattr(content, '__iter__'):
             self._container = content
             self._is_string = False
