diff --git a/Lib/email/_compat21.py b/Lib/email/_compat21.py
index 76d6f50..de8c447 100644
--- a/Lib/email/_compat21.py
+++ b/Lib/email/_compat21.py
@@ -30,6 +30,10 @@
     return i / j
 
 
+def _isstring(obj):
+    return isinstance(obj, StringType) or isinstance(obj, UnicodeType)    
+
+
 
 # These two functions are imported into the Iterators.py interface module.
 # The Python 2.2 version uses generators for efficiency.
@@ -38,7 +42,7 @@
     lines = []
     for subpart in msg.walk():
         payload = subpart.get_payload()
-        if isinstance(payload, StringType) or isinstance(payload, UnicodeType):
+        if _isstring(payload):
             for line in StringIO(payload).readlines():
                 lines.append(line)
     return lines
diff --git a/Lib/email/_compat22.py b/Lib/email/_compat22.py
index 2581568..a05451f 100644
--- a/Lib/email/_compat22.py
+++ b/Lib/email/_compat22.py
@@ -31,6 +31,10 @@
     return i // j
 
 
+def _isstring(obj):
+    return isinstance(obj, StringTypes)
+
+
 
 # These two functions are imported into the Iterators.py interface module.
 # The Python 2.2 version uses generators for efficiency.
@@ -38,7 +42,7 @@
     """Iterate over the parts, returning string payloads line-by-line."""
     for subpart in msg.walk():
         payload = subpart.get_payload()
-        if isinstance(payload, StringTypes):
+        if _isstring(payload):
             for line in StringIO(payload):
                 yield line
 
