diff --git a/Doc/library/_ast.rst b/Doc/library/_ast.rst
index 9383591..e9f4ad4 100644
--- a/Doc/library/_ast.rst
+++ b/Doc/library/_ast.rst
@@ -12,16 +12,16 @@
 .. versionadded:: 2.5
 
 The ``_ast`` module helps Python applications to process trees of the Python
-abstract syntax grammar. The Python compiler currently provides read-only access
-to such trees, meaning that applications can only create a tree for a given
-piece of Python source code; generating :term:`bytecode` from a (potentially modified)
-tree is not supported. The abstract syntax itself might change with each Python
-release; this module helps to find out programmatically what the current grammar
-looks like.
+abstract syntax grammar.  The abstract syntax itself might change with each
+Python release; this module helps to find out programmatically what the current
+grammar looks like.
 
-An abstract syntax tree can be generated by passing ``_ast.PyCF_ONLY_AST`` as a
-flag to the :func:`compile` builtin function. The result will be a tree of
-objects whose classes all inherit from ``_ast.AST``.
+An abstract syntax tree can be generated by passing :data:`_ast.PyCF_ONLY_AST`
+as a flag to the :func:`compile` builtin function. The result will be a tree of
+objects whose classes all inherit from :class:`_ast.AST`.
+
+A modified abstract syntax tree can be compiled into a Python code object using
+the built-in :func:`compile` function.
 
 The actual classes are derived from the ``Parser/Python.asdl`` file, which is
 reproduced below. There is one class defined for each left-hand side symbol in
@@ -41,12 +41,15 @@
 ``_ast.stmt`` subclasses also have lineno and col_offset attributes.  The lineno
 is the line number of source text (1 indexed so the first line is line 1) and
 the col_offset is the utf8 byte offset of the first token that generated the
-node.  The utf8 offset is recorded because the parser uses utf8  internally.
+node.  The utf8 offset is recorded because the parser uses utf8 internally.
 
 If these attributes are marked as optional in the grammar (using a question
 mark), the value might be ``None``. If the attributes can have zero-or-more
 values (marked with an asterisk), the values are represented as Python lists.
 
+The constructors of all ``_ast`` classes don't take arguments; instead, if you
+create instances, you must assign the required attributes separately.
+
 
 Abstract Grammar
 ----------------
diff --git a/Doc/library/compiler.rst b/Doc/library/compiler.rst
index 5f5ed44..d744bc0 100644
--- a/Doc/library/compiler.rst
+++ b/Doc/library/compiler.rst
@@ -28,12 +28,6 @@
 This chapter explains how the various components of the :mod:`compiler` package
 work.  It blends reference material with a tutorial.
 
-The following modules are part of the :mod:`compiler` package:
-
-.. toctree::
-
-   _ast.rst
-
 
 The basic interface
 ===================
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index e966495..b26655e 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -190,21 +190,27 @@
 
 .. function:: compile(source, filename, mode[, flags[, dont_inherit]])
 
-   Compile the *source* into a code object.  Code objects can be executed by an
-   :keyword:`exec` statement or evaluated by a call to :func:`eval`.  The
-   *filename* argument should give the file from which the code was read; pass some
-   recognizable value if it wasn't read from a file (``'<string>'`` is commonly
-   used). The *mode* argument specifies what kind of code must be compiled; it can
-   be ``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if it
-   consists of a single expression, or ``'single'`` if it consists of a single
-   interactive statement (in the latter case, expression statements that evaluate
-   to something else than ``None`` will be printed).
+   Compile the *source* into a code or AST object.  Code objects can be executed
+   by an :keyword:`exec` statement or evaluated by a call to :func:`eval`.
+   *source* can either be a string or an AST object.  Refer to the :mod:`_ast`
+   module documentation for information on how to compile into and from AST
+   objects.
 
-   When compiling multi-line statements, two caveats apply: line endings must be
-   represented by a single newline character (``'\n'``), and the input must be
-   terminated by at least one newline character.  If line endings are represented
-   by ``'\r\n'``, use the string :meth:`replace` method to change them into
-   ``'\n'``.
+   When compiling a string with multi-line statements, two caveats apply: line
+   endings must be represented by a single newline character (``'\n'``), and the
+   input must be terminated by at least one newline character.  If line endings
+   are represented by ``'\r\n'``, use the string :meth:`replace` method to
+   change them into ``'\n'``.
+
+   The *filename* argument should give the file from which the code was read;
+   pass some recognizable value if it wasn't read from a file (``'<string>'`` is
+   commonly used).
+
+   The *mode* argument specifies what kind of code must be compiled; it can be
+   ``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if it
+   consists of a single expression, or ``'single'`` if it consists of a single
+   interactive statement (in the latter case, expression statements that
+   evaluate to something else than ``None`` will be printed).
 
    The optional arguments *flags* and *dont_inherit* (which are new in Python 2.2)
    control which future statements (see :pep:`236`) affect the compilation of
@@ -224,6 +230,9 @@
    This function raises :exc:`SyntaxError` if the compiled source is invalid,
    and :exc:`TypeError` if the source contains null bytes.
 
+   .. versionadded:: 2.6
+      Support for compiling AST objects.
+
 
 .. function:: complex([real[, imag]])
 
diff --git a/Doc/library/language.rst b/Doc/library/language.rst
index d405a4b..7d6af7d 100644
--- a/Doc/library/language.rst
+++ b/Doc/library/language.rst
@@ -15,6 +15,7 @@
 .. toctree::
 
    parser.rst
+   _ast.rst
    symbol.rst
    token.rst
    keyword.rst
