diff --git a/docs/library/btree.rst b/docs/library/btree.rst
index 8fac67e8d422ea697334e278c356f18786c6eb33..3578acd8fd42c3dc4245eb57be934e8e90b5bc50 100644
--- a/docs/library/btree.rst
+++ b/docs/library/btree.rst
@@ -5,7 +5,7 @@
    :synopsis: simple BTree database
 
 The ``btree`` module implements a simple key-value database using external
-storage (disk files, or in general case, a random-access stream). Keys are
+storage (disk files, or in general case, a random-access `stream`). Keys are
 stored sorted in the database, and besides efficient retrieval by a key
 value, a database also supports efficient ordered range scans (retrieval
 of values with the keys in a given range). On the application interface
diff --git a/docs/library/machine.UART.rst b/docs/library/machine.UART.rst
index 983ef0a947713bf391bbc0e283dd6c3c9005fe50..1574f17db9a006b6404f016e82d24e1a68b08582 100644
--- a/docs/library/machine.UART.rst
+++ b/docs/library/machine.UART.rst
@@ -24,7 +24,7 @@ are supported.
 
 WiPy/CC3200: Bits can be 5, 6, 7, 8. Stop can be 1 or 2.
 
-A UART object acts like a stream object and reading and writing is done
+A UART object acts like a `stream` object and reading and writing is done
 using the standard stream methods::
 
     uart.read(10)       # read 10 characters, returns a bytes object
diff --git a/docs/library/pyb.UART.rst b/docs/library/pyb.UART.rst
index 76f347ffa8dc34cd93087174d7556a2692470cb1..c299c838e7ca0470dc6c1cb8264eb03f82b17348 100644
--- a/docs/library/pyb.UART.rst
+++ b/docs/library/pyb.UART.rst
@@ -23,7 +23,7 @@ UART objects can be created and initialised using::
     *Note:* with parity=None, only 8 and 9 bits are supported.  With parity enabled,
     only 7 and 8 bits are supported.
 
-A UART object acts like a stream object and reading and writing is done
+A UART object acts like a `stream` object and reading and writing is done
 using the standard stream methods::
 
     uart.read(10)       # read 10 characters, returns a bytes object
diff --git a/docs/library/pyb.USB_VCP.rst b/docs/library/pyb.USB_VCP.rst
index 80cc40cddec30a2a9d4d45df44f837387f09e7a6..3bc6c749cedddda0a28215f706a2eebba941d064 100644
--- a/docs/library/pyb.USB_VCP.rst
+++ b/docs/library/pyb.USB_VCP.rst
@@ -4,7 +4,7 @@
 class USB_VCP -- USB virtual comm port
 ======================================
 
-The USB_VCP class allows creation of an object representing the USB
+The USB_VCP class allows creation of a `stream`-like object representing the USB
 virtual comm port.  It can be used to read and write data over USB to
 the connected host.
 
@@ -47,7 +47,7 @@ Methods
    Read at most ``nbytes`` from the serial device and return them as a
    bytes object.  If ``nbytes`` is not specified then the method reads
    all available bytes from the serial device.
-   USB_VCP stream implicitly works in non-blocking mode,
+   USB_VCP `stream` implicitly works in non-blocking mode,
    so if no pending data available, this method will return immediately
    with ``None`` value.
 
diff --git a/docs/library/sys.rst b/docs/library/sys.rst
index d49577306e2b6a5ddb02796f298e00fe076d91e3..f2d96cb8cc85d33509be5961259beef3b469110d 100644
--- a/docs/library/sys.rst
+++ b/docs/library/sys.rst
@@ -104,15 +104,15 @@ Constants
 
 .. data:: stderr
 
-   Standard error stream.
+   Standard error `stream`.
 
 .. data:: stdin
 
-   Standard input stream.
+   Standard input `stream`.
 
 .. data:: stdout
 
-   Standard output stream.
+   Standard output `stream`.
 
 .. data:: version
 
diff --git a/docs/library/uio.rst b/docs/library/uio.rst
index 7042a9e376e20b2ecbad1d5b5e74b42cfd1de47b..7e6c93228464c0cab030a608f86b279f1105006f 100644
--- a/docs/library/uio.rst
+++ b/docs/library/uio.rst
@@ -6,7 +6,7 @@
 
 |see_cpython_module| :mod:`python:io`.
 
-This module contains additional types of stream (file-like) objects
+This module contains additional types of `stream` (file-like) objects
 and helper functions.
 
 Conceptual hierarchy
diff --git a/docs/library/uos.rst b/docs/library/uos.rst
index 43bf69cc0aa70b7e134e42439343c309bc73cf4d..c7fa4b3081dc833b332ea30929f6b288e262b225 100644
--- a/docs/library/uos.rst
+++ b/docs/library/uos.rst
@@ -91,7 +91,7 @@ Functions
 
 .. function:: dupterm(stream_object, index=0)
 
-   Duplicate or switch the MicroPython terminal (the REPL) on the given stream-like
+   Duplicate or switch the MicroPython terminal (the REPL) on the given `stream`-like
    object. The *stream_object* argument must implement the ``readinto()`` and
    ``write()`` methods.  The stream should be in non-blocking mode and
    ``readinto()`` should return ``None`` if there is no data available for reading.
diff --git a/docs/library/uselect.rst b/docs/library/uselect.rst
index f88ab7d1d98901e8c3dae08babf19b8235bc6d1d..fb43f7e63ec51f4facbb68814c5f4f9acb4fbb62 100644
--- a/docs/library/uselect.rst
+++ b/docs/library/uselect.rst
@@ -7,7 +7,7 @@
 |see_cpython_module| :mod:`python:select`.
 
 This module provides functions to efficiently wait for events on multiple
-streams (select streams which are ready for operations).
+`streams <stream>` (select streams which are ready for operations).
 
 Functions
 ---------
@@ -33,7 +33,7 @@ Methods
 
 .. method:: poll.register(obj[, eventmask])
 
-   Register *obj* for polling. *eventmask* is logical OR of:
+   Register `stream` *obj* for polling. *eventmask* is logical OR of:
 
    * `uselect.POLLIN`  - data available for reading
    * `uselect.POLLOUT` - more data can be written
diff --git a/docs/library/usocket.rst b/docs/library/usocket.rst
index fab05b652bacb33db7c18336cb90db1dabdff3b8..de55fc14caddb7e6bf1bfb571cfbf1b3b7713468 100644
--- a/docs/library/usocket.rst
+++ b/docs/library/usocket.rst
@@ -12,7 +12,7 @@ This module provides access to the BSD socket interface.
 .. admonition:: Difference to CPython
    :class: attention
 
-   For efficiency and consistency, socket objects in MicroPython implement a stream
+   For efficiency and consistency, socket objects in MicroPython implement a `stream`
    (file-like) interface directly. In CPython, you need to convert a socket to
    a file-like object using `makefile()` method. This method is still supported
    by MicroPython (but is a no-op), so where compatibility with CPython matters,
@@ -248,7 +248,7 @@ Methods
    Not every `MicroPython port` supports this method. A more portable and
    generic solution is to use `uselect.poll` object. This allows to wait on
    multiple objects at the same time (and not just on sockets, but on generic
-   stream objects which support polling). Example::
+   `stream` objects which support polling). Example::
 
         # Instead of:
         s.settimeout(1.0)  # time in seconds
diff --git a/docs/library/ussl.rst b/docs/library/ussl.rst
index 3ec609f67bdc6c5baadb9a39880253efac9117d2..903a351f4da4f5dfa53b25ad5c1a3971b80ebb47 100644
--- a/docs/library/ussl.rst
+++ b/docs/library/ussl.rst
@@ -15,9 +15,9 @@ Functions
 
 .. function:: ussl.wrap_socket(sock, server_side=False, keyfile=None, certfile=None, cert_reqs=CERT_NONE, ca_certs=None)
 
-   Takes a stream *sock* (usually usocket.socket instance of ``SOCK_STREAM`` type),
+   Takes a `stream` *sock* (usually usocket.socket instance of ``SOCK_STREAM`` type),
    and returns an instance of ssl.SSLSocket, which wraps the underlying stream in
-   an SSL context. Returned object has the usual stream interface methods like
+   an SSL context. Returned object has the usual `stream` interface methods like
    `read()`, `write()`, etc. In MicroPython, the returned object does not expose
    socket interface and methods like `recv()`, `send()`. In particular, a
    server-side SSL socket should be created from a normal socket returned from
diff --git a/docs/library/uzlib.rst b/docs/library/uzlib.rst
index fb1746fe8e740c53160c5280123c35fe36e1f2b6..0b399f228ac4fd60783773d4c6f5665db995a052 100644
--- a/docs/library/uzlib.rst
+++ b/docs/library/uzlib.rst
@@ -25,7 +25,7 @@ Functions
 
 .. class:: DecompIO(stream, wbits=0)
 
-   Create a stream wrapper which allows transparent decompression of
+   Create a `stream` wrapper which allows transparent decompression of
    compressed data in another *stream*. This allows to process compressed
    streams with data larger than available heap size. In addition to
    values described in :func:`decompress`, *wbits* may take values