Close #3067: locale.setlocale() accepts a Unicode locale.
diff --git a/Lib/locale.py b/Lib/locale.py
index bb4aa37..f204b56 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -525,7 +525,7 @@
         category may be given as one of the LC_* values.
 
     """
-    if locale and type(locale) is not type(""):
+    if locale and not isinstance(locale, basestring):
         # convert to string
         locale = normalize(_build_localename(locale))
     return _setlocale(category, locale)
diff --git a/Misc/NEWS b/Misc/NEWS
index 2e33e7f..d455828 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -16,6 +16,8 @@
 Library
 -------
 
+- Issue #3067: locale.setlocale() accepts a Unicode locale.
+
 - Issue #11700: mailbox proxy object close methods can now be called multiple
   times without error, and _ProxyFile now closes the wrapped file.