diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index 8d08e8b..d3d1af8 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -574,8 +574,8 @@
             if isinstance(a, PurePath):
                 parts += a._parts
             elif isinstance(a, str):
-                # Assuming a str
-                parts.append(a)
+                # Force-cast str subclasses to str (issue #21127)
+                parts.append(str(a))
             else:
                 raise TypeError(
                     "argument should be a path or str object, not %r"
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
index 2268f94..6378d8c 100644
--- a/Lib/test/test_pathlib.py
+++ b/Lib/test/test_pathlib.py
@@ -197,6 +197,25 @@
         self.assertEqual(P(P('a'), 'b'), P('a/b'))
         self.assertEqual(P(P('a'), P('b')), P('a/b'))
 
+    def _check_str_subclass(self, *args):
+        # Issue #21127: it should be possible to construct a PurePath object
+        # from an str subclass instance, and it then gets converted to
+        # a pure str object.
+        class StrSubclass(str):
+            pass
+        P = self.cls
+        p = P(*(StrSubclass(x) for x in args))
+        self.assertEqual(p, P(*args))
+        for part in p.parts:
+            self.assertIs(type(part), str)
+
+    def test_str_subclass_common(self):
+        self._check_str_subclass('')
+        self._check_str_subclass('.')
+        self._check_str_subclass('a')
+        self._check_str_subclass('a/b.txt')
+        self._check_str_subclass('/a/b.txt')
+
     def test_join_common(self):
         P = self.cls
         p = P('a/b')
@@ -690,6 +709,17 @@
         p = self.cls('//a/b/c/d')
         self.assertEqual(str(p), '\\\\a\\b\\c\\d')
 
+    def test_str_subclass(self):
+        self._check_str_subclass('c:')
+        self._check_str_subclass('c:a')
+        self._check_str_subclass('c:a\\b.txt')
+        self._check_str_subclass('c:\\')
+        self._check_str_subclass('c:\\a')
+        self._check_str_subclass('c:\\a\\b.txt')
+        self._check_str_subclass('\\\\some\\share')
+        self._check_str_subclass('\\\\some\\share\\a')
+        self._check_str_subclass('\\\\some\\share\\a\\b.txt')
+
     def test_eq(self):
         P = self.cls
         self.assertEqual(P('c:a/b'), P('c:a/b'))
diff --git a/Misc/ACKS b/Misc/ACKS
index 4173917..6064bfd 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -743,6 +743,7 @@
 Chris Lawrence
 Brian Leair
 Mathieu Leduc-Hamel
+Antony Lee
 Christopher Lee
 Inyeol Lee
 James Lee
diff --git a/Misc/NEWS b/Misc/NEWS
index fcdaabf..332c7ef 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -39,6 +39,9 @@
 Library
 -------
 
+- Issue #21127: Path objects can now be instantiated from str subclass
+  instances (such as numpy.str_).
+
 - Issue #15002: urllib.response object to use _TemporaryFileWrapper (and
   _TemporaryFileCloser) facility. Provides a better way to handle file
   descriptor close. Patch contributed by Christian Theune.
