Issue #11186: pydoc ignores a module if its name contains a surrogate character
in the index of modules.
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 739b440..8e14ee7 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -952,6 +952,9 @@
         modpkgs = []
         if shadowed is None: shadowed = {}
         for importer, name, ispkg in pkgutil.iter_modules([dir]):
+            if any((0xD800 <= ord(ch) <= 0xDFFF) for ch in name):
+                # ignore a module if its name contains a surrogate character
+                continue
             modpkgs.append((name, '', ispkg, name in shadowed))
             shadowed[name] = 1
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 25dfd91..9a12912 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -103,6 +103,9 @@
 Library
 -------
 
+- Issue #11186: pydoc ignores a module if its name contains a surrogate
+  character in the index of modules.
+
 - Issue #11815: Use a light-weight SimpleQueue for the result queue in
   concurrent.futures.ProcessPoolExecutor.