diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst
index 48edf1f..264cd47 100644
--- a/Doc/library/zipfile.rst
+++ b/Doc/library/zipfile.rst
@@ -61,7 +61,7 @@
 .. class:: ZipInfo(filename='NoName', date_time=(1980,1,1,0,0,0))
 
    Class used to represent information about a member of an archive. Instances
-   of this class are returned by the :meth:`getinfo` and :meth:`infolist`
+   of this class are returned by the :meth:`.getinfo` and :meth:`.infolist`
    methods of :class:`ZipFile` objects.  Most users of the :mod:`zipfile` module
    will not need to create these, but only use those created by this
    module. *filename* should be the full name of the archive member, and
@@ -87,7 +87,7 @@
 .. data:: ZIP_DEFLATED
 
    The numeric constant for the usual ZIP compression method.  This requires the
-   zlib module.  No other compression methods are currently supported.
+   :mod:`zlib` module.  No other compression methods are currently supported.
 
 
 .. seealso::
@@ -130,7 +130,7 @@
    these extensions.
 
    If the file is created with mode ``'a'`` or ``'w'`` and then
-   :meth:`close`\ d without adding any files to the archive, the appropriate
+   :meth:`closed <close>` without adding any files to the archive, the appropriate
    ZIP structures for an empty archive will be written to the file.
 
    ZipFile is also a context manager and therefore supports the
@@ -179,7 +179,7 @@
    *mode* parameter, if included, must be one of the following: ``'r'`` (the
    default), ``'U'``, or ``'rU'``. Choosing ``'U'`` or  ``'rU'`` will enable
    :term:`universal newlines` support in the read-only object.  *pwd* is the
-   password used for encrypted files.  Calling  :meth:`open` on a closed
+   password used for encrypted files.  Calling  :meth:`.open` on a closed
    ZipFile will raise a  :exc:`RuntimeError`.
 
    .. note::
@@ -201,7 +201,7 @@
 
    .. note::
 
-      The :meth:`open`, :meth:`read` and :meth:`extract` methods can take a filename
+      The :meth:`.open`, :meth:`read` and :meth:`extract` methods can take a filename
       or a :class:`ZipInfo` object.  You will appreciate this when trying to read a
       ZIP file that contains members with duplicate names.
 
@@ -307,7 +307,7 @@
       :class:`ZipInfo` constructor sets this member to :const:`ZIP_STORED`.
 
    .. versionchanged:: 3.2
-      The *compression_type* argument.
+      The *compress_type* argument.
 
 The following data attributes are also available:
 
@@ -323,7 +323,7 @@
    The comment text associated with the ZIP file.  If assigning a comment to a
    :class:`ZipFile` instance created with mode 'a' or 'w', this should be a
    string no longer than 65535 bytes.  Comments longer than this will be
-   truncated in the written archive when :meth:`ZipFile.close` is called.
+   truncated in the written archive when :meth:`close` is called.
 
 
 .. _pyzipfile-objects:
@@ -379,8 +379,8 @@
 ZipInfo Objects
 ---------------
 
-Instances of the :class:`ZipInfo` class are returned by the :meth:`getinfo` and
-:meth:`infolist` methods of :class:`ZipFile` objects.  Each object stores
+Instances of the :class:`ZipInfo` class are returned by the :meth:`.getinfo` and
+:meth:`.infolist` methods of :class:`ZipFile` objects.  Each object stores
 information about a single member of the ZIP archive.
 
 Instances have the following attributes:
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 2879641..65158a9 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -165,6 +165,28 @@
         p.wait()
         self.assertEqual(p.stderr, None)
 
+    @unittest.skipIf(mswindows, "path not included in Windows message")
+    def test_path_in_arg_not_found_message(self):
+        # Check that the error message displays the path not found when
+        # args[0] is not found.
+        self.assertRaisesRegex(FileNotFoundError, "notfound_blahblah",
+                               subprocess.Popen, ["notfound_blahblah"])
+
+    @unittest.skipIf(mswindows, "path not displayed in Windows message")
+    def test_path_in_executable_not_found_message(self):
+        # Check that the error message displays the executable argument (and
+        # not args[0]) when the executable argument is not found
+        # (issue #16114).
+        #     We call sys.exit() inside the code to prevent the test runner
+        # from hanging if the test fails and finds python.
+        self.assertRaisesRegex(FileNotFoundError, "notfound_blahblah",
+                               subprocess.Popen, [sys.executable, "-c",
+                               "import sys; sys.exit(47)"],
+                               executable="notfound_blahblah")
+        self.assertRaisesRegex(FileNotFoundError, "exenotfound_blahblah",
+                               subprocess.Popen, ["argnotfound_blahblah"],
+                               executable="exenotfound_blahblah")
+
     # For use in the test_cwd* tests below.
     def _normalize_cwd(self, cwd):
         # Normalize an expected cwd (for Tru64 support).
