diff -r 2072deff3b2f Lib/email/message.py --- a/Lib/email/message.py Mon Feb 24 14:31:25 2014 -0800 +++ b/Lib/email/message.py Sat Mar 01 17:44:35 2014 +0530 @@ -200,6 +200,8 @@ is called. If you want to set the payload to a scalar object, use set_payload() instead. """ + if isinstance(self._payload, str): + raise TypeError("Payload cannot be a string") if self._payload is None: self._payload = [payload] else: diff -r 2072deff3b2f Lib/test/test_email/test_email.py --- a/Lib/test/test_email/test_email.py Mon Feb 24 14:31:25 2014 -0800 +++ b/Lib/test/test_email/test_email.py Sat Mar 01 17:44:35 2014 +0530 @@ -124,6 +124,10 @@ msg.set_payload([]) self.assertEqual(msg.get_payload(), []) + def test_string_payload_to_attach(self): + msg = Message() + self.assertRaises(TypeError,msg.attach('')) + def test_get_charsets(self): eq = self.assertEqual