diff --git a/Lib/os.py b/Lib/os.py
index 52d3f1d..c901bd1 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -1072,6 +1072,9 @@
     def __subclasshook__(cls, subclass):
         return hasattr(subclass, '__fspath__')
 
+    def __class_getitem__(cls, type):
+        return cls
+
 
 if name == 'nt':
     class _AddedDllDirectory:
diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index d70fde0..f0537cf 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -777,6 +777,9 @@
             return NotImplemented
         return self._cparts >= other._cparts
 
+    def __class_getitem__(cls, type):
+        return cls
+
     drive = property(attrgetter('_drv'),
                      doc="""The drive prefix (letter or UNC path), if any.""")
 
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index bf40cb1..f44ddba 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -4048,6 +4048,9 @@
         self.assertRaises(ZeroDivisionError, self.fspath,
                           FakePath(ZeroDivisionError()))
 
+    def test_pathlike_class_getitem(self):
+        self.assertIs(os.PathLike[bytes], os.PathLike)
+
 
 class TimesTests(unittest.TestCase):
     def test_times(self):
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
index 058a201..b8e7fcc 100644
--- a/Lib/test/test_pathlib.py
+++ b/Lib/test/test_pathlib.py
@@ -2217,6 +2217,9 @@
 class PathTest(_BasePathTest, unittest.TestCase):
     cls = pathlib.Path
 
+    def test_class_getitem(self):
+        self.assertIs(self.cls[str], self.cls)
+
     def test_concrete_class(self):
         p = self.cls('a')
         self.assertIs(type(p),
