diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 0fb48f4..5df7b67 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -935,6 +935,36 @@
    :mod:`os.open` as *opener* results in functionality similar to passing
    ``None``).
 
+   The following example is an alternative implementation for opening files
+   for exclusive writing.  If we did not have support for the ``'x'`` mode,
+   we could implement it with this opener::
+
+      >>> import os
+      >>> def open_exclusive(path, mode):
+      ...     return os.open(path, mode | os.O_CREAT | os.O_EXCL)
+      ...
+      >>> filename = 'spam.txt'
+      >>> fp = open(filename, 'w', opener=open_exclusive)
+      >>> fp2 = open(filename, 'w', opener=open_exclusive)
+      Traceback (most recent call last):
+        ...
+      FileExistsError: [Errno 17] File exists: 'spam.txt'
+
+   This other example uses the :ref:`dir_fd` parameter of the
+   :func:`os.open` function to open a file relative to a given directory::
+
+      >>> import os
+      >>> def open_relative(dirname):
+      ...     dir_fd = os.open(dirname, os.O_RDONLY)
+      ...     def opener(path, flags):
+      ...         return os.open(path, flags, dir_fd=dir_fd)
+      ...     return opener
+      ...
+      >>> opener = open_relative('somedir')
+      >>> with open('spamspam.txt', 'w', opener=opener) as f:
+      ...     print('This will be written to somedir/spamspam.txt', file=f)
+      ...
+
    .. versionchanged:: 3.3
       The *opener* parameter was added.
       The ``'x'`` mode was added.
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index e83e55c..44e663d 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -498,6 +498,9 @@
    :mod:`os.open` as *opener* results in functionality similar to passing
    ``None``).
 
+   See the :func:`open` built-in function for examples on using the *opener*
+   parameter.
+
    .. versionchanged:: 3.3
       The *opener* parameter was added.
       The ``'x'`` mode was added.
diff --git a/Misc/ACKS b/Misc/ACKS
index ee1ce67..81ed27c 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -929,6 +929,7 @@
 Iustin Pop
 Claudiu Popa
 John Popplewell
+Guillaume Pratte
 Amrit Prem
 Paul Prescod
 Donovan Preston
