Make these modules work when Python is compiled without Unicode support.
diff --git a/Lib/pickle.py b/Lib/pickle.py
index d5773e2..9b59de8 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -54,6 +54,12 @@
 except ImportError:
     PyStringMap = None
 
+try:
+    UnicodeType
+except NameError:
+    UnicodeType = None
+
+
 MARK            = '('
 STOP            = '.'
 POP             = '0'
@@ -304,8 +310,8 @@
             s = mdumps(l)[1:]
             self.write(BINUNICODE + s + encoding)
         else:
-            object = object.replace(u"\\", u"\\u005c")
-            object = object.replace(u"\n", u"\\u000a")
+            object = object.replace("\\", "\\u005c")
+            object = object.replace("\n", "\\u000a")
             self.write(UNICODE + object.encode('raw-unicode-escape') + '\n')
 
         memo_len = len(memo)
@@ -334,8 +340,8 @@
                         self.write(BINSTRING + s + object)
             else:
                 if unicode:
-                    object = object.replace(u"\\", u"\\u005c")
-                    object = object.replace(u"\n", u"\\u000a")
+                    object = object.replace("\\", "\\u005c")
+                    object = object.replace("\n", "\\u000a")
                     object = object.encode('raw-unicode-escape')
                     self.write(UNICODE + object + '\n')
                 else:
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index 254e006..e5ba73e 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -394,11 +394,15 @@
     if z != 2: raise TestFailed, 'exec \'z=1+1\''
     z = None
     del z
+    import types
+    if hasattr(types, "UnicodeType"):
+        exec r"""if 1:
     exec u'z=1+1\n'
     if z != 2: raise TestFailed, 'exec u\'z=1+1\'\\n'
     del z
     exec u'z=1+1'
     if z != 2: raise TestFailed, 'exec u\'z=1+1\''
+"""
 f()
 g = {}
 exec 'z = 1' in g
diff --git a/Lib/zipfile.py b/Lib/zipfile.py
index 816d887..a06731e 100644
--- a/Lib/zipfile.py
+++ b/Lib/zipfile.py
@@ -66,7 +66,10 @@
 _FH_EXTRA_FIELD_LENGTH = 11
 
 # Used to compare file passed to ZipFile
-_STRING_TYPES = (type('s'), type(u's'))
+import types
+_STRING_TYPES = (types.StringType,)
+if hasattr(types, "UnicodeType"):
+    _STRING_TYPES = _STRING_TYPES + (types.UnicodeType,)
 
 
 def is_zipfile(filename):