diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst
index de29e4f..a8013d2 100644
--- a/Doc/library/importlib.rst
+++ b/Doc/library/importlib.rst
@@ -606,18 +606,15 @@
       Load the specified module if it is the same as :attr:`name`.
 
 
-.. class:: _SourcelessFileLoader(fullname, path)
+.. class:: SourcelessFileLoader(fullname, path)
 
    A concrete implementation of :class:`importlib.abc.FileLoader` which can
    import bytecode files (i.e. no source code files exist).
 
-   It is **strongly** suggested you do not rely on this loader (hence the
-   leading underscore of the class). Direct use of bytecode files (and thus not
-   source code files) inhibits your modules from being usable by all Python
-   implementations. It also runs the risk of your bytecode files not being
-   usable by new versions of Python which change the bytecode format. This
-   class is only documented as it is directly used by import and thus can
-   potentially have instances show up as a module's ``__loader__`` attribute.
+   Please note that direct use of bytecode files (and thus not source code
+   files) inhibits your modules from being usable by all Python
+   implementations or new versions of Python which change the bytecode
+   format.
 
    .. versionadded:: 3.3
 
diff --git a/Lib/imp.py b/Lib/imp.py
index f35247c..0388d08 100644
--- a/Lib/imp.py
+++ b/Lib/imp.py
@@ -94,7 +94,7 @@
 
 
 class _LoadCompiledCompatibility(_HackedGetData,
-        _bootstrap._SourcelessFileLoader):
+        _bootstrap.SourcelessFileLoader):
 
     """Compatibility support for implementing load_compiled()."""
 
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index d9df2b7..817fe39 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -671,7 +671,7 @@
             pass
 
 
-class _SourcelessFileLoader(FileLoader, _LoaderBasics):
+class SourcelessFileLoader(FileLoader, _LoaderBasics):
 
     """Loader which handles sourceless file imports."""
 
@@ -1198,7 +1198,7 @@
 
     supported_loaders = [(ExtensionFileLoader, _suffix_list(3), False),
                          (SourceFileLoader, _suffix_list(1), True),
-                         (_SourcelessFileLoader, _suffix_list(2), True)]
+                         (SourcelessFileLoader, _suffix_list(2), True)]
     setattr(self_module, '_DEFAULT_PATH_HOOK',
             FileFinder.path_hook(*supported_loaders))
 
diff --git a/Lib/importlib/abc.py b/Lib/importlib/abc.py
index baa09fd..c171da3 100644
--- a/Lib/importlib/abc.py
+++ b/Lib/importlib/abc.py
@@ -119,7 +119,7 @@
     ExecutionLoader ABCs."""
 
 _register(FileLoader, machinery.SourceFileLoader,
-            machinery._SourcelessFileLoader)
+            machinery.SourcelessFileLoader)
 
 
 class SourceLoader(_bootstrap.SourceLoader, ResourceLoader, ExecutionLoader):
diff --git a/Lib/importlib/machinery.py b/Lib/importlib/machinery.py
index c9906c7..07465ce 100644
--- a/Lib/importlib/machinery.py
+++ b/Lib/importlib/machinery.py
@@ -5,5 +5,5 @@
 from ._bootstrap import PathFinder
 from ._bootstrap import FileFinder
 from ._bootstrap import SourceFileLoader
-from ._bootstrap import _SourcelessFileLoader
+from ._bootstrap import SourcelessFileLoader
 from ._bootstrap import ExtensionFileLoader
diff --git a/Lib/importlib/test/source/test_case_sensitivity.py b/Lib/importlib/test/source/test_case_sensitivity.py
index d4bae8d..f65f285 100644
--- a/Lib/importlib/test/source/test_case_sensitivity.py
+++ b/Lib/importlib/test/source/test_case_sensitivity.py
@@ -24,7 +24,7 @@
                                         (_bootstrap.SourceFileLoader,
                                             _bootstrap._suffix_list(imp.PY_SOURCE),
                                             True),
-                                        (_bootstrap._SourcelessFileLoader,
+                                        (_bootstrap.SourcelessFileLoader,
                                             _bootstrap._suffix_list(imp.PY_COMPILED),
                                             True))
         return finder.find_module(self.name)
diff --git a/Lib/importlib/test/source/test_file_loader.py b/Lib/importlib/test/source/test_file_loader.py
index 764dcff..c4c7545 100644
--- a/Lib/importlib/test/source/test_file_loader.py
+++ b/Lib/importlib/test/source/test_file_loader.py
@@ -379,7 +379,7 @@
 
 class SourcelessLoaderBadBytecodeTest(BadBytecodeTest):
 
-    loader = _bootstrap._SourcelessFileLoader
+    loader = _bootstrap.SourcelessFileLoader
 
     def test_empty_file(self):
         def test(name, mapping, bytecode_path):
diff --git a/Lib/importlib/test/source/test_finder.py b/Lib/importlib/test/source/test_finder.py
index f5de58a..32ebd73 100644
--- a/Lib/importlib/test/source/test_finder.py
+++ b/Lib/importlib/test/source/test_finder.py
@@ -38,7 +38,7 @@
     def import_(self, root, module):
         loader_details = [(_bootstrap.SourceFileLoader,
                             _bootstrap._suffix_list(imp.PY_SOURCE), True),
-                          (_bootstrap._SourcelessFileLoader,
+                          (_bootstrap.SourcelessFileLoader,
                             _bootstrap._suffix_list(imp.PY_COMPILED), True)]
         finder = _bootstrap.FileFinder(root, *loader_details)
         return finder.find_module(module)
diff --git a/Lib/importlib/test/test_abc.py b/Lib/importlib/test/test_abc.py
index e9eec60..008bd21 100644
--- a/Lib/importlib/test/test_abc.py
+++ b/Lib/importlib/test/test_abc.py
@@ -62,7 +62,7 @@
 class FileLoader(InheritanceTests, unittest.TestCase):
 
     superclasses = [abc.ResourceLoader, abc.ExecutionLoader]
-    subclasses = [machinery.SourceFileLoader, machinery._SourcelessFileLoader]
+    subclasses = [machinery.SourceFileLoader, machinery.SourcelessFileLoader]
 
 
 class SourceLoader(InheritanceTests, unittest.TestCase):
diff --git a/Misc/NEWS b/Misc/NEWS
index b8e28c1..d6a44e2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -84,7 +84,7 @@
   which send EOF without trailing \r\n.
 
 - Issue #14605: Add importlib.abc.FileLoader, importlib.machinery.(FileFinder,
-  SourceFileLoader, _SourcelessFileLoader, ExtensionFileLoader).
+  SourceFileLoader, SourcelessFileLoader, ExtensionFileLoader).
 
 - Issue #13959: imp.cache_from_source()/source_from_cache() now follow
   os.path.join()/split() semantics for path manipulation instead of its prior,
diff --git a/Python/importlib.h b/Python/importlib.h
index bc4c0d9..8bc0d81 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
Binary files differ
