diff --git a/django/core/mail.py b/django/core/mail.py
index a5af6e6..7b09e47 100644
--- a/django/core/mail.py
+++ b/django/core/mail.py
@@ -1,7 +1,7 @@
 # Use this module for e-mailing.
 
 from django.conf import settings
-from email.MIMEText import MIMEText
+from email.MIMENonMultipart import MIMENonMultipart
 from email.Header import Header
 import smtplib, rfc822
 import socket
@@ -13,14 +13,32 @@ DNS_NAME = socket.getfqdn() # Cache the hostname
 class BadHeaderError(ValueError):
     pass
 
-class SafeMIMEText(MIMEText):
+class SafeMIMEText(MIMENonMultipart):
+    """Class for generating non-quoted text/* type MIME documents."""
+
+    def __init__(self, _text, _subtype='plain', _charset='us-ascii'):
+        """Create a text/* type MIME document.
+
+        _text is the string for this message object.
+
+        _subtype is the MIME sub content type, defaulting to "plain".
+
+        _charset is the character set parameter added to the Content-Type
+        header.  This defaults to "us-ascii".  Note that as a side-effect, the
+        Content-Transfer-Encoding header will also be set.
+        """
+        MIMENonMultipart.__init__(self, 'text', _subtype,
+                                  **{'charset': _charset})
+        self.add_header('Content-Transfer-Encoding', 'quoted-printable')
+        self.set_payload(_text, _charset)
+
     def __setitem__(self, name, val):
         "Forbids multi-line headers, to prevent header injection."
         if '\n' in val or '\r' in val:
             raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name)
         if name == "Subject":
             val = Header(val, settings.DEFAULT_CHARSET)
-        MIMEText.__setitem__(self, name, val)
+        MIMENonMultipart.__setitem__(self, name, val)
 
 def send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=settings.EMAIL_HOST_USER, auth_password=settings.EMAIL_HOST_PASSWORD):
     """
