SF patch # 884030 by Amit Aronovitch; fixes the _subpart argument to match
documented semantics.
diff --git a/Lib/email/MIMEMultipart.py b/Lib/email/MIMEMultipart.py
index 16add2f..ea6ae0c 100644
--- a/Lib/email/MIMEMultipart.py
+++ b/Lib/email/MIMEMultipart.py
@@ -1,5 +1,5 @@
-# Copyright (C) 2002 Python Software Foundation
-# Author: barry@zope.com (Barry Warsaw)
+# Copyright (C) 2002-2004 Python Software Foundation
+# Author: barry@python.org (Barry Warsaw)
 
 """Base class for MIME multipart/* type messages.
 """
@@ -11,7 +11,8 @@
 class MIMEMultipart(MIMEBase.MIMEBase):
     """Base class for MIME multipart/* type messages."""
 
-    def __init__(self, _subtype='mixed', boundary=None, *_subparts, **_params):
+    def __init__(self, _subtype='mixed', boundary=None, _subparts=None,
+                 **_params):
         """Creates a multipart/* type message.
 
         By default, creates a multipart/mixed message, with proper
@@ -24,7 +25,7 @@
         calculated as needed.
 
         _subparts is a sequence of initial subparts for the payload.  It
-        must be possible to convert this sequence to a list.  You can always
+        must be an iterable object, such as a list.  You can always
         attach new subparts to the message by using the attach() method.
 
         Additional parameters for the Content-Type header are taken from the
@@ -32,6 +33,7 @@
         """
         MIMEBase.MIMEBase.__init__(self, 'multipart', _subtype, **_params)
         if _subparts:
-            self.attach(*list(_subparts))
+            for p in _subparts:
+                self.attach(p)
         if boundary:
             self.set_boundary(boundary)