diff --git a/docs/newforms.txt b/docs/newforms.txt
index 800c13b52a..5d735ceb28 100644
--- a/docs/newforms.txt
+++ b/docs/newforms.txt
@@ -962,7 +962,7 @@ validation if a particular field's value is not given. ``initial`` values are
~~~~~~~~~~
The ``widget`` argument lets you specify a ``Widget`` class to use when
-rendering this ``Field``. See "Widgets" below for more information.
+rendering this ``Field``. See "Widgets"_ below for more information.
``help_text``
~~~~~~~~~~~~~
@@ -1437,6 +1437,156 @@ like so::
senders = MultiEmailField()
cc_myself = forms.BooleanField()
+Widgets
+=======
+
+A widget is Django's representation of a HTML input element. The widget
+handles the rendering of the HTML, and the extraction of data from a GET/POST
+dictionary that corresponds to the widget.
+
+Django provides a representation of all the basic HTML widgets, plus some
+commonly used groups of widgets:
+
+ ============================ ===========================================
+ Widget HTML Equivalent
+ ============================ ===========================================
+ ``TextInput`` ``...``
+ ``CheckboxInput`` ``