diff --git a/Lib/locale.py b/Lib/locale.py
index 15c53ba..f547bab 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -18,6 +18,10 @@
 import operator
 import functools
 
+# keep a copy of the builtin str type, because 'str' name is overriden
+# in globals by a function below
+_str = str
+
 try:
     _unicode = unicode
 except NameError:
@@ -573,7 +577,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, (_str, _unicode)):
         # convert to string
         locale = normalize(_build_localename(locale))
     return _setlocale(category, locale)
diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
index 719175b..140388a 100644
--- a/Lib/test/test_locale.py
+++ b/Lib/test/test_locale.py
@@ -493,6 +493,16 @@
         # longer accept unicode strings.
         self.assertEqual(locale.normalize(u'en_US'), 'en_US.ISO8859-1')
 
+    def test_setlocale_unicode(self):
+        old_loc = locale.getlocale(locale.LC_ALL)
+        try:
+            user_locale = locale.setlocale(locale.LC_ALL, '')
+            unicode_locale = user_locale.decode('utf-8')
+            user_locale2 = locale.setlocale(locale.LC_ALL, unicode_locale)
+            self.assertEqual(user_locale, user_locale2)
+        finally:
+            locale.setlocale(locale.LC_ALL, old_loc)
+
 
 def test_main():
     tests = [
diff --git a/Misc/NEWS b/Misc/NEWS
index 8cbddff..4a32e47 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -20,6 +20,9 @@
 Library
 -------
 
+- Issue #25742: :func:`locale.setlocale` now accepts a Unicode string for
+  its second parameter.
+
 - Issue #10131: Fixed deep copying of minidom documents.  Based on patch
   by Marian Ganisin.
 
