diff --git a/Lib/uu.py b/Lib/uu.py
index f591798..d986b0d 100755
--- a/Lib/uu.py
+++ b/Lib/uu.py
@@ -33,7 +33,6 @@
 import binascii
 import os
 import sys
-from types import StringType
 
 __all__ = ["Error", "encode", "decode"]
 
@@ -47,7 +46,7 @@
     #
     if in_file == '-':
         in_file = sys.stdin
-    elif isinstance(in_file, StringType):
+    elif isinstance(in_file, basestring):
         if name is None:
             name = os.path.basename(in_file)
         if mode is None:
@@ -61,7 +60,7 @@
     #
     if out_file == '-':
         out_file = sys.stdout
-    elif isinstance(out_file, StringType):
+    elif isinstance(out_file, basestring):
         out_file = open(out_file, 'w')
     #
     # Set defaults for name and mode
@@ -88,7 +87,7 @@
     #
     if in_file == '-':
         in_file = sys.stdin
-    elif isinstance(in_file, StringType):
+    elif isinstance(in_file, basestring):
         in_file = open(in_file)
     #
     # Read until a begin is encountered or we've exhausted the file
@@ -117,7 +116,7 @@
     #
     if out_file == '-':
         out_file = sys.stdout
-    elif isinstance(out_file, StringType):
+    elif isinstance(out_file, basestring):
         fp = open(out_file, 'wb')
         try:
             os.path.chmod(out_file, mode)
@@ -172,7 +171,7 @@
 
     if dopt:
         if topt:
-            if isinstance(output, StringType):
+            if isinstance(output, basestring):
                 output = open(output, 'w')
             else:
                 print sys.argv[0], ': cannot do -t to stdout'
@@ -180,7 +179,7 @@
         decode(input, output)
     else:
         if topt:
-            if isinstance(input, StringType):
+            if isinstance(input, basestring):
                 input = open(input, 'r')
             else:
                 print sys.argv[0], ': cannot do -t from stdin'
diff --git a/Misc/NEWS b/Misc/NEWS
index b257e0e..40be84c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -551,6 +551,8 @@
 - Bug #1245379: Add "unicode-1-1-utf-7" as an alias for "utf-7" to
   ``encodings.aliases``.
 
+- ` uu.encode()`` and ``uu.decode()`` now support unicode filenames.
+
 Build
 -----
 
