diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 5d6a5fe..ffc34d8 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -878,18 +878,21 @@
    mode).  It can be ``None``, ``''``, ``'\n'``, ``'\r'``, and ``'\r\n'``.  It
    works as follows:
 
-   * On input, if *newline* is ``None``, universal newlines mode is enabled.
-     Lines in the input can end in ``'\n'``, ``'\r'``, or ``'\r\n'``, and these
-     are translated into ``'\n'`` before being returned to the caller.  If it is
-     ``''``, universal newline mode is enabled, but line endings are returned to
-     the caller untranslated.  If it has any of the other legal values, input
-     lines are only terminated by the given string, and the line ending is
-     returned to the caller untranslated.
+   * When reading input from the stream, if *newline* is ``None``,
+     universal newlines mode is enabled.  Lines in the input can end
+     in ``'\n'``, ``'\r'``, or ``'\r\n'``, and these are translated
+     into ``'\n'`` before being returned to the caller.  If it is
+     ``''``, universal newline mode is enabled, but line endings are
+     returned to the caller untranslated.  If it has any of the other
+     legal values, input lines are only terminated by the given
+     string, and the line ending is returned to the caller
+     untranslated.
 
-   * On output, if *newline* is ``None``, any ``'\n'`` characters written are
-     translated to the system default line separator, :data:`os.linesep`.  If
-     *newline* is ``''`` or ``'\n'``, no translation takes place.  If *newline*
-     is any of the other legal values, any ``'\n'`` characters written are
+   * When writing output to the stream, if *newline* is ``None``, any
+     ``'\n'`` characters written are translated to the system default
+     line separator, :data:`os.linesep`.  If *newline* is ``''`` or
+     ``'\n'``, no translation takes place.  If *newline* is any of the
+     other legal values, any ``'\n'`` characters written are
      translated to the given string.
 
    If *closefd* is ``False`` and a file descriptor rather than a filename was
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index 9aecc7d..09e0501 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -760,18 +760,21 @@
    *newline* controls how line endings are handled.  It can be ``None``,
    ``''``, ``'\n'``, ``'\r'``, and ``'\r\n'``.  It works as follows:
 
-   * On input, if *newline* is ``None``, universal newlines mode is enabled.
-     Lines in the input can end in ``'\n'``, ``'\r'``, or ``'\r\n'``, and these
-     are translated into ``'\n'`` before being returned to the caller.  If it is
-     ``''``, universal newline mode is enabled, but line endings are returned to
-     the caller untranslated.  If it has any of the other legal values, input
-     lines are only terminated by the given string, and the line ending is
-     returned to the caller untranslated.
+   * When reading input from the stream, if *newline* is ``None``,
+     universal newlines mode is enabled.  Lines in the input can end
+     in ``'\n'``, ``'\r'``, or ``'\r\n'``, and these are translated
+     into ``'\n'`` before being returned to the caller.  If it is
+     ``''``, universal newline mode is enabled, but line endings are
+     returned to the caller untranslated.  If it has any of the other
+     legal values, input lines are only terminated by the given
+     string, and the line ending is returned to the caller
+     untranslated.
 
-   * On output, if *newline* is ``None``, any ``'\n'`` characters written are
-     translated to the system default line separator, :data:`os.linesep`.  If
-     *newline* is ``''`` or ``'\n'``, no translation takes place.  If *newline*
-     is any of the other legal values, any ``'\n'`` characters written are
+   * When writing output to the stream, if *newline* is ``None``, any
+     ``'\n'`` characters written are translated to the system default
+     line separator, :data:`os.linesep`.  If *newline* is ``''`` or
+     ``'\n'``, no translation takes place.  If *newline* is any of the
+     other legal values, any ``'\n'`` characters written are
      translated to the given string.
 
    If *line_buffering* is ``True``, :meth:`flush` is implied when a call to
