_structure(): Take an optional `fp' argument which would be the object
to print>> the structure to.  Defaults to sys.stdout.
diff --git a/Lib/email/Iterators.py b/Lib/email/Iterators.py
index 0d0e0b2..d5f6eeb 100644
--- a/Lib/email/Iterators.py
+++ b/Lib/email/Iterators.py
@@ -4,6 +4,8 @@
 """Various types of useful iterators and generators.
 """
 
+import sys
+
 try:
     from email._compat22 import body_line_iterator, typed_subpart_iterator
 except SyntaxError:
@@ -12,10 +14,12 @@
 
 
 
-def _structure(msg, level=0):
+def _structure(msg, level=0, fp=None):
     """A handy debugging aid"""
+    if fp is None:
+        fp = sys.stdout
     tab = ' ' * (level * 4)
-    print tab + msg.get_type(msg.get_default_type())
+    print >> fp, tab + msg.get_type(msg.get_default_type())
     if msg.is_multipart():
         for subpart in msg.get_payload():
-            _structure(subpart, level+1)
+            _structure(subpart, level+1, fp)