diff --git a/docs/AutomaticReferenceCounting.rst b/docs/AutomaticReferenceCounting.rst
index 1bbfa0d168cbf3b98c14bb4a1e5a3dceb598646d..1457b6082d15b13b5be05bd5796181719f78786f 100644
--- a/docs/AutomaticReferenceCounting.rst
+++ b/docs/AutomaticReferenceCounting.rst
@@ -1347,7 +1347,7 @@ object pointer.  The corresponding actual sequence executed is the
 However, under certain circumstances, ARC is permitted to re-order and
 eliminate operations in a manner which may alter the overall
 computation history beyond what is permitted by the general "as if"
-rule of C/C++ and the :ref:`restrictions <_arc.objects.retains>` on
+rule of C/C++ and the :ref:`restrictions <arc.objects.retains>` on
 the implementation of ``retain`` and ``release``.
 
 .. admonition:: Rationale
@@ -1359,6 +1359,7 @@ the implementation of ``retain`` and ``release``.
   example, consider the following code:
 
   .. code-block:: objc
+
     id x = _ivar;
     [x foo];
 
@@ -1450,7 +1451,7 @@ dependency is not carried by values that are stored to objects.
   itself cause dependence, but since generally the optimizer will not
   be able to prove that the function doesn't depend on that parameter,
   it will be forced to conservatively assume it does.
-  
+
   Dependency propagates to values loaded from a pointer because those
   values might be invalidated by deallocating the object.  For
   example, given the code ``__strong id x = p->ivar;``, ARC must not