diff --git a/docs/library/usocket.rst b/docs/library/usocket.rst
index c46e8f4c53c67f56482e986fbbd3e7ac5c4c5e98..64afa6f59b3b13bb5db51dcb4793b0c278a11b17 100644
--- a/docs/library/usocket.rst
+++ b/docs/library/usocket.rst
@@ -10,6 +10,12 @@ This module provides access to the BSD socket interface.
 See corresponding `CPython module <https://docs.python.org/3/library/socket.html>`_ for
 comparison.
 
+.. admonition:: Difference to CPython
+   :class: attention
+
+   CPython used to have a ``socket.error`` exception which is now deprecated,
+   and is an alias of OSError. In MicroPython, use OSError directly.
+
 Socket address format(s)
 ------------------------
 
@@ -51,13 +57,18 @@ Functions
       s = socket.socket()
       s.connect(socket.getaddrinfo('www.micropython.org', 80)[0][-1])
 
-.. only:: port_wipy
-
-    Exceptions
-    ----------
-
-    .. data:: socket.error
-    .. data:: socket.timeout
+   .. admonition:: Difference to CPython
+      :class: attention
+
+      CPython raises a ``socket.gaierror`` exception (OSError subclass) in case
+      of error in this function. MicroPython doesn't have ``socket.gaierror``
+      and raises OSError directly. Note that error numbers of ``getaddrinfo()``
+      form a separate namespace and may not match error numbers from
+      ``uerrno`` module. To distinguish ``getaddrinfo()`` errors, they are
+      represented by negative numbers, whereas standard system errors are
+      positive numbers (error numbers are accessible using ``e.args[0]`` property
+      from an exception object). The use of negative values is a provisional
+      detail which may change in the future.
 
 Constants
 ---------