diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 1cd7ac2..75777b5 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -1458,19 +1458,19 @@ function drupal_unpack($obj, $field = 'data') {
  * available to code that needs localization. See st() and get_t() for
  * alternatives.
  *
- * @param $string
+ * @param string $string
  *   A string containing the English string to translate.
- * @param $args
+ * @param array $args
  *   An associative array of replacements to make after translation.
  *   See format_string().
- * @param $options
+ * @param array $options
  *   An associative array of additional options, with the following elements:
- *   - 'langcode' (defaults to the current language): The language code to
- *     translate to a language other than what is used to display the page.
- *   - 'context' (defaults to the empty context): The context the source string
- *     belongs to.
+ *   - langcode: The language code to translate to a language other than what is
+ *     used to display the page. Defaults to the current language.
+ *   - context: The context the source string belongs to.  Defaults to the empty
+ *     context.
  *
- * @return
+ * @return string
  *   The translated string.
  *
  * @see st()
@@ -1741,17 +1741,17 @@ function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NO
  * If the function is called with no arguments, this function returns all set
  * messages without clearing them.
  *
- * @param $message
+ * @param string $message
  *   The message to be displayed to the user. For consistency with other
  *   messages, it should begin with a capital letter and end with a period.
- * @param $type
- *   The type of the message. One of the following values are possible:
- *   - 'status'
- *   - 'warning'
- *   - 'error'
- * @param $repeat
- *   If this is FALSE and the message is already set, then the message won't
- *   be repeated.
+ * @param string $type
+ *   The type of the message. One of the following strings are permissible:
+ *   - status
+ *   - warning
+ *   - error
+ * @param bool $repeat
+ *   If this is FALSE and the message is already set, then the message won't be
+ *   repeated.
  */
 function drupal_set_message($message = NULL, $type = 'status', $repeat = TRUE) {
   if ($message) {
diff --git a/includes/common.inc b/includes/common.inc
index a05a09a..8d913bb 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -527,15 +527,15 @@ function drupal_get_destination() {
  * needs to be parsed into an associative query parameter array in
  * $options['query'] and the fragment into $options['fragment'].
  *
- * @param $url
- *   The URL string to parse, f.e. $_GET['destination'].
+ * @param string $url
+ *   The URL string to parse, e.g. $_GET['destination'].
  *
- * @return
+ * @return array
  *   An associative array containing the keys:
- *   - 'path': The path of the URL. If the given $url is external, this includes
+ *   - path: The path of the URL. If the given $url is external, this includes
  *     the scheme and host.
- *   - 'query': An array of query parameters of $url, if existent.
- *   - 'fragment': The fragment of $url, if existent.
+ *   - query: An array of query parameters of $url, if existent.
+ *   - fragment: The fragment of $url, if existent.
  *
  * @see url()
  * @see drupal_goto()
@@ -1601,16 +1601,18 @@ function format_rss_item($title, $link, $description, $args = array()) {
 /**
  * Format XML elements.
  *
- * @param $array
+ * @param array $array
  *   An array where each item represents an element and is either a:
- *   - (key => value) pair (<key>value</key>)
+ *   - (key => value) pair (<key>value</key>), or
  *   - Associative array with fields:
- *     - 'key': element name
- *     - 'value': element contents
- *     - 'attributes': associative array of element attributes
+ *     - key: element name
+ *     - value: element contents
+ *     - attributes: associative array of element attributes
+ *   In both cases, 'value' can be a simple string, or it can be another array
+ *   with the same format as $array itself for nesting.
  *
- * In both cases, 'value' can be a simple string, or it can be another array
- * with the same format as $array itself for nesting.
+ * @return string
+ *   An XML-formatted text string.
  */
 function format_xml_elements($array) {
   $output = '';
@@ -1657,17 +1659,17 @@ function format_xml_elements($array) {
  *     array('%old-type' => $info->old_type, '%new-type' => $info->new_type)));
  * @endcode
  *
- * @param $count
+ * @param int $count
  *   The item count to display.
- * @param $singular
+ * @param string $singular
  *   The string for the singular case. Please make sure it is clear this is
  *   singular, to ease translation (e.g. use "1 new comment" instead of "1 new").
  *   Do not use @count in the singular string.
- * @param $plural
+ * @param string $plural
  *   The string for the plural case. Please make sure it is clear this is plural,
  *   to ease translation. Use @count in place of the item count, as in "@count
  *   new comments".
- * @param $args
+ * @param array $args
  *   An associative array of replacements to make after translation. Incidences
  *   of any key in this array are replaced with the corresponding value.
  *   Based on the first character of the key, the value is escaped and/or themed:
@@ -1677,13 +1679,14 @@ function format_xml_elements($array) {
  *      content (check_plain + drupal_placeholder)
  *   Note that you do not need to include @count in this array.
  *   This replacement is done automatically for the plural case.
- * @param $options
+ * @param array $options
  *   An associative array of additional options, with the following keys:
- *     - 'langcode' (default to the current language) The language code to
+ *     - langcode (default to the current language) The language code to
  *       translate to a language other than what is used to display the page.
- *     - 'context' (default to the empty context) The context the source string
+ *     - context (default to the empty context) The context the source string
  *       belongs to.
- * @return
+ *
+ * @return string
  *   A translated string.
  */
 function format_plural($count, $singular, $plural, array $args = array(), array $options = array()) {
@@ -1814,29 +1817,30 @@ function format_interval($timestamp, $granularity = 2, $langcode = NULL) {
 /**
  * Formats a date, using a date type or a custom date format string.
  *
- * @param $timestamp
+ * @param integer $timestamp
  *   A UNIX timestamp to format.
- * @param $type
- *   (optional) The format to use, one of:
- *   - 'short', 'medium', or 'long' (the corresponding built-in date formats).
+ * @param string $type
+ *   (optional) Defaults to 'medium'. The format to use, one of:
+ *   - short: Use the built-in short date format.
+ *   - medium: Use the built-in medium date format.
+ *   - long: Use the built-in long date format.
+ *   - custom: use the $format varaible in creating a formatted date string.
  *   - The name of a date type defined by a module in hook_date_format_types(),
  *     if it's been assigned a format.
  *   - The machine name of an administrator-defined date format.
- *   - 'custom', to use $format.
- *   Defaults to 'medium'.
- * @param $format
+ * @param string $format
  *   (optional) If $type is 'custom', a PHP date format string suitable for
  *   input to date(). Use a backslash to escape ordinary text, so it does not
  *   get interpreted as date format characters.
- * @param $timezone
+ * @param string $timezone
  *   (optional) Time zone identifier, as described at
- *   http://php.net/manual/en/timezones.php Defaults to the time zone used to
+ *   http://php.net/manual/en/timezones.php. Defaults to the time zone used to
  *   display the page.
- * @param $langcode
+ * @param string $langcode
  *   (optional) Language code to translate to. Defaults to the language used to
  *   display the page.
  *
- * @return
+ * @return string
  *   A translated date string in the requested format.
  */
 function format_date($timestamp, $type = 'medium', $format = '', $timezone = NULL, $langcode = NULL) {
@@ -1993,7 +1997,7 @@ function format_username($account) {
  * When creating links in modules, consider whether l() could be a better
  * alternative than url().
  *
- * @param $path
+ * @param string $path
  *   The internal path or external URL being linked to, such as "node/34" or
  *   "http://example.com/foo". A few notes:
  *   - If you provide a full URL, it will be considered an external URL.
@@ -2010,31 +2014,31 @@ function format_username($account) {
  *     then you can either URL encode the query keys and values yourself and
  *     include them in $path, or use $options['query'] to let this function
  *     URL encode them.
- * @param $options
+ * @param array $options
  *   An associative array of additional options, with the following elements:
- *   - 'query': An array of query key/value-pairs (without any URL-encoding) to
+ *   - query: An array of query key/value-pairs (without any URL-encoding) to
  *     append to the URL.
- *   - 'fragment': A fragment identifier (named anchor) to append to the URL.
- *     Do not include the leading '#' character.
- *   - 'absolute': Defaults to FALSE. Whether to force the output to be an
- *     absolute link (beginning with http:). Useful for links that will be
+ *   - fragment: A fragment identifier (named anchor) to append to the URL. Do
+ *     not include the leading '#' character.
+ *   - absolute: Defaults to FALSE. Indicates whether to force the output to be
+ *     an absolute link (beginning with http:). Useful for links that will be
  *     displayed outside the site, such as in an RSS feed.
- *   - 'alias': Defaults to FALSE. Whether the given path is a URL alias
+ *   - alias: Defaults to FALSE. Indicates whether the given path is a URL alias
  *     already.
- *   - 'external': Whether the given path is an external URL.
- *   - 'language': An optional language object. If the path being linked to is
+ *   - external: Whether the given path is an external URL.
+ *   - language: An optional language object. If the path being linked to is
  *     internal to the site, $options['language'] is used to look up the alias
  *     for the URL. If $options['language'] is omitted, the global $language_url
  *     will be used.
- *   - 'https': Whether this URL should point to a secure location. If not
+ *   - https: Whether this URL should point to a secure location. If not
  *     defined, the current scheme is used, so the user stays on http or https
  *     respectively. TRUE enforces HTTPS and FALSE enforces HTTP, but HTTPS can
  *     only be enforced when the variable 'https' is set to TRUE.
- *   - 'base_url': Only used internally, to modify the base URL when a language
+ *   - base_url: Only used internally, to modify the base URL when a language
  *     dependent URL requires so.
- *   - 'prefix': Only used internally, to modify the path when a language
+ *   - prefix: Only used internally, to modify the path when a language
  *     dependent URL requires so.
- *   - 'script': The script filename in Drupal's root directory to use when
+ *   - script: The script filename in Drupal's root directory to use when
  *     clean URLs are disabled, such as 'index.php'. Defaults to an empty
  *     string, as most modern web servers automatically find 'index.php'. If
  *     clean URLs are disabled, the value of $path is appended as query
@@ -2042,12 +2046,12 @@ function format_username($account) {
  *     Drupal on a web server that cannot be configured to automatically find
  *     index.php, then hook_url_outbound_alter() can be implemented to force
  *     this value to 'index.php'.
- *   - 'entity_type': The entity type of the object that called url(). Only set if
+ *   - entity_type: The entity type of the object that called url(). Only set if
  *     url() is invoked by entity_uri().
- *   - 'entity': The entity object (such as a node) for which the URL is being
+ *   - entity: The entity object (such as a node) for which the URL is being
  *     generated. Only set if url() is invoked by entity_uri().
  *
- * @return
+ * @return string
  *   A string containing a URL to the given path.
  */
 function url($path = NULL, array $options = array()) {
@@ -2261,9 +2265,9 @@ function drupal_attributes(array $attributes = array()) {
  * internal links output by modules should be generated by this function if
  * possible.
  *
- * @param $text
+ * @param string $text
  *   The link text for the anchor tag.
- * @param $path
+ * @param string $path
  *   The internal path or external URL being linked to, such as "node/34" or
  *   "http://example.com/foo". After the url() function is called to construct
  *   the URL from $path and $options, the resulting URL is passed through
@@ -2271,23 +2275,23 @@ function drupal_attributes(array $attributes = array()) {
  *   well-formed HTML. See url() for more information and notes.
  * @param array $options
  *   An associative array of additional options, with the following elements:
- *   - 'attributes': An associative array of HTML attributes to apply to the
+ *   - attributes: An associative array of HTML attributes to apply to the
  *     anchor tag. If element 'class' is included, it must be an array; 'title'
  *     must be a string; other elements are more flexible, as they just need
  *     to work in a call to drupal_attributes($options['attributes']).
- *   - 'html' (default FALSE): Whether $text is HTML or just plain-text. For
+ *   - html (default FALSE): Whether $text is HTML or just plain-text. For
  *     example, to make an image tag into a link, this must be set to TRUE, or
  *     you will see the escaped HTML image tag. $text is not sanitized if
  *     'html' is TRUE. The calling function must ensure that $text is already
  *     safe.
- *   - 'language': An optional language object. If the path being linked to is
+ *   - language: An optional language object. If the path being linked to is
  *     internal to the site, $options['language'] is used to determine whether
  *     the link is "active", or pointing to the current page (the language as
  *     well as the path must match). This element is also used by url().
  *   - Additional $options elements used by the url() function.
  *
- * @return
- *   An HTML string containing a link to the given path.
+ * @return string
+ *   An HTML string-formatted containing a link to the given path.
  */
 function l($text, $path, array $options = array()) {
   global $language_url;
@@ -2735,17 +2739,17 @@ function drupal_add_html_head_link($attributes, $header = FALSE) {
  * Non-preprocessed files should only be added to the page when they are
  * actually needed.
  *
- * @param $data
+ * @param string $data
  *   (optional) The stylesheet data to be added, depending on what is passed
  *   through to the $options['type'] parameter:
- *   - 'file': The path to the CSS file relative to the base_path(), or a
- *     stream wrapper URI. For example: "modules/devel/devel.css" or
- *     "public://generated_css/stylesheet_1.css". Note that Modules should
- *     always prefix the names of their CSS files with the module name; for
- *     example, system-menus.css rather than simply menus.css. Themes can
- *     override module-supplied CSS files based on their filenames, and this
- *     prefixing helps prevent confusing name collisions for theme developers.
- *     See drupal_get_css() where the overrides are performed. Also, if the
+ *   - file: The path to the CSS file relative to the base_path(), or a stream
+ *     wrapper URI. For example: "public://generated_css/stylesheet_1.css" or
+ *     "modules/devel/devel.css". Note that Modules should always prefix the
+ *     names of their CSS files with the module name; for example,
+ *     system-menus.css rather than simply menus.css. Themes can override
+ *     module-supplied CSS files based on their filenames, and this prefixing
+ *     helps prevent confusing name collisions for theme developers. See
+ *     drupal_get_css() where the overrides are performed. Also, if the
  *     direction of the current language is right-to-left (Hebrew, Arabic,
  *     etc.), the function will also look for an RTL CSS file and append it to
  *     the list. The name of this file should have an '-rtl.css' suffix.  For
@@ -2753,25 +2757,25 @@ function drupal_add_html_head_link($attributes, $header = FALSE) {
  *     'mymodule-name-rtl.css' file added to the list, if exists in the same
  *     directory. This CSS file should contain overrides for properties which
  *     should be reversed or otherwise different in a right-to-left display.
- *   - 'inline': A string of CSS that should be placed in the given scope. Note
+ *   - inline: A string of CSS that should be placed in the given scope. Note
  *     that it is better practice to use 'file' stylesheets, rather than
  *     'inline', as the CSS would then be aggregated and cached.
- *   - 'external': The absolute path to an external CSS file that is not hosted
+ *   - external: The absolute path to an external CSS file that is not hosted
  *     on the local server. These files will not be aggregated if CSS
  *     aggregation is enabled.
- * @param $options
+ * @param string|array $options
  *   (optional) A string defining the 'type' of CSS that is being added in the
  *   $data parameter ('file', 'inline', or 'external'), or an array which can
  *   have any or all of the following keys:
- *   - 'type': The type of stylesheet being added. Available options are 'file',
+ *   - type: The type of stylesheet being added. Available options are 'file',
  *     'inline' or 'external'. Defaults to 'file'.
- *   - 'basename': Force a basename for the file being added. Modules are
- *     expected to use stylesheets with unique filenames, but integration of
- *     external libraries may make this impossible. The basename of
+ *   - basename: Force a basename for the file being added. Modules are expected
+ *     to use stylesheets with unique filenames, but integration of external
+ *     libraries may make this impossible. The basename of
  *     'modules/node/node.css' is 'node.css'. If the external library "node.js"
  *     ships with a 'node.css', then a different, unique basename would be
  *     'node.js.css'.
- *   - 'group': A number identifying the group in which to add the stylesheet.
+ *   - group: A number identifying the group in which to add the stylesheet.
  *     Available constants are:
  *     - CSS_SYSTEM: Any system-layer CSS.
  *     - CSS_DEFAULT: Any module-layer CSS.
@@ -2780,7 +2784,7 @@ function drupal_add_html_head_link($attributes, $header = FALSE) {
  *     within a lower weight group is output to the page before the markup for
  *     loading a stylesheet within a higher weight group, so CSS within higher
  *     weight groups take precendence over CSS within lower weight groups.
- *   - 'every_page': For optimal front-end performance when aggregation is
+ *   - every_page: For optimal front-end performance when aggregation is
  *     enabled, this should be set to TRUE if the stylesheet is present on every
  *     page of the website for users for whom it is present at all. This
  *     defaults to FALSE. It is set to TRUE for stylesheets added via module and
@@ -2801,8 +2805,8 @@ function drupal_add_html_head_link($attributes, $header = FALSE) {
  *     be downloaded when first encountered, so it should be kept relatively
  *     small by ensuring that most commonly needed stylesheets are added to
  *     every page.
- *   - 'weight': The weight of the stylesheet specifies the order in which the
- *     CSS will appear relative to other stylesheets with the same group and
+ *   - weight: The weight of the stylesheet specifies the order in which the CSS
+ *     will appear relative to other stylesheets with the same group and
  *     'every_page' flag. The exact ordering of stylesheets is as follows:
  *     - First by group.
  *     - Then by the 'every_page' flag, with TRUE coming before FALSE.
@@ -2811,18 +2815,19 @@ function drupal_add_html_head_link($attributes, $header = FALSE) {
  *       being the same, a stylesheet added by a call to drupal_add_css() that
  *       happened later in the page request gets added to the page after one for
  *       which drupal_add_css() happened earlier in the page request.
- *   - 'media': The media type for the stylesheet, e.g., all, print, screen.
+ *   - media: The media type for the stylesheet, e.g., all, print, screen.
  *     Defaults to 'all'.
- *   - 'preprocess': If TRUE and CSS aggregation/compression is enabled, the
+ *   - preprocess: If TRUE and CSS aggregation/compression is enabled, the
  *     styles will be aggregated and compressed. Defaults to TRUE.
- *   - 'browsers': An array containing information specifying which browsers
+ *   - browsers: An array containing information specifying which browsers
  *     should load the CSS item. See drupal_pre_render_conditional_comments()
  *     for details.
  *
- * @return
+ * @return array
  *   An array of queued cascading stylesheets.
  *
  * @see drupal_get_css()
+ * @see drupal_pre_render_conditional_comments()
  */
 function drupal_add_css($data = NULL, $options = NULL) {
   $css = &drupal_static(__FUNCTION__, array());
@@ -3175,17 +3180,17 @@ function drupal_aggregate_css(&$css_groups) {
  * this function to work correctly even if modules have implemented custom
  * logic for grouping and aggregating files.
  *
- * @param $element
+ * @param array $element
  *   A render array containing:
- *   - '#items': The CSS items as returned by drupal_add_css() and altered by
+ *   - #items: The CSS items as returned by drupal_add_css() and altered by
  *     drupal_get_css().
- *   - '#group_callback': A function to call to group #items to enable the use
- *     of fewer tags by aggregating files and/or using multiple @import
- *     statements within a single tag.
- *   - '#aggregate_callback': A function to call to aggregate the items within
- *     the groups arranged by the #group_callback function.
+ *   - #group_callback: A function to call to group #items to enable the use of
+ *     fewer tags by aggregating files and/or using multiple @import statements
+ *     within a single tag.
+ *   - #aggregate_callback: A function to call to aggregate the items within the
+ *     groups arranged by the #group_callback function.
  *
- * @return
+ * @return array
  *   A render array that will render to a string of XHTML CSS tags.
  *
  * @see drupal_get_css()
@@ -3840,20 +3845,20 @@ function drupal_region_class($region) {
  * Non-preprocessed files should only be added to the page when they are
  * actually needed.
  *
- * @param $data
+ * @param string|array $data
  *   (optional) If given, the value depends on the $options parameter:
- *   - 'file': Path to the file relative to base_path().
- *   - 'inline': The JavaScript code that should be placed in the given scope.
- *   - 'external': The absolute path to an external JavaScript file that is not
+ *   - file: Path to the file relative to base_path().
+ *   - inline: The JavaScript code that should be placed in the given scope.
+ *   - external: The absolute path to an external JavaScript file that is not
  *     hosted on the local server. These files will not be aggregated if
  *     JavaScript aggregation is enabled.
- *   - 'setting': An associative array with configuration options. The array is
+ *   - setting: An associative array with configuration options. The array is
  *     merged directly into Drupal.settings. All modules should wrap their
  *     actual configuration settings in another variable to prevent conflicts in
  *     the Drupal.settings namespace. Items added with a string key will replace
  *     existing settings with that key; items with numeric array keys will be
  *     added to the existing settings array.
- * @param $options
+ * @param string|array $options
  *   (optional) A string defining the type of JavaScript that is being added in
  *   the $data parameter ('file'/'setting'/'inline'/'external'), or an
  *   associative array. JavaScript settings should always pass the string
@@ -3922,7 +3927,7 @@ function drupal_region_class($region) {
  *   - preprocess: If TRUE and JavaScript aggregation is enabled, the script
  *     file will be aggregated. Defaults to TRUE.
  *
- * @return
+ * @return array
  *   The current array of JavaScript files, settings, and in-line code,
  *   including Drupal defaults, anything previously added with calls to
  *   drupal_add_js(), and this function call's additions.
@@ -5127,9 +5132,9 @@ function drupal_cron_cleanup() {
  * @return array
  *   An associative array of file objects, keyed on the chosen key. Each element
  *   in the array is an object containing file information, with properties:
- *   - 'uri': Full URI of the file.
- *   - 'filename': File name.
- *   - 'name': Name of file without the extension.
+ *   - uri: Full URI of the file.
+ *   - filename: File name.
+ *   - name: Name of file without the extension.
  */
 function drupal_system_listing($mask, $directory, $key = 'name', $min_depth = 1) {
   $config = conf_path();
@@ -5222,16 +5227,16 @@ function drupal_set_page_content($content = NULL) {
 /**
  * #pre_render callback to render #browsers into #prefix and #suffix.
  *
- * @param $elements
+ * @param array $elements
  *   A render array with a '#browsers' property. The '#browsers' property can
  *   contain any or all of the following keys:
- *   - 'IE': If FALSE, the element is not rendered by Internet Explorer. If
+ *   - IE: If FALSE, the element is not rendered by Internet Explorer. If
  *     TRUE, the element is rendered by Internet Explorer. Can also be a string
  *     containing an expression for Internet Explorer to evaluate as part of a
  *     conditional comment. For example, this can be set to 'lt IE 7' for the
  *     element to be rendered in Internet Explorer 6, but not in Internet
  *     Explorer 7 or higher. Defaults to TRUE.
- *   - '!IE': If FALSE, the element is not rendered by browsers other than
+ *   - !IE: If FALSE, the element is not rendered by browsers other than
  *     Internet Explorer. If TRUE, the element is rendered by those browsers.
  *     Defaults to TRUE.
  *   Examples:
@@ -5244,7 +5249,7 @@ function drupal_set_page_content($content = NULL) {
  *   - To render an element in Internet Explorer 8 and higher and in all other
  *     browsers, '#browsers' can be set to array('IE' => 'gte IE 8').
  *
- * @return
+ * @return array
  *   The passed-in element with markup for conditional comments potentially
  *   added to '#prefix' and '#suffix'.
  */
@@ -5423,6 +5428,12 @@ function drupal_pre_render_link($element) {
  * group is rendered on its own. When the group is rendered together with other
  * children, these child-specific properties are ignored, and only the overall
  * properties of the parent are used.
+ *
+ * @param array $element
+ *   Array representing a links element.
+ *
+ * @return array
+ *   Possibly modified array for links element.
  */
 function drupal_pre_render_links($element) {
   $element += array('#links' => array());
@@ -5545,20 +5556,20 @@ function drupal_render_page($page) {
  * drupal_render() can optionally cache the rendered output of elements to
  * improve performance. To use drupal_render() caching, set the element's #cache
  * property to an associative array with one or several of the following keys:
- *    - 'keys': An array of one or more keys that identify the element. If 'keys'
- *       is set, the cache ID is created automatically from these keys. See
- *       drupal_render_cid_create().
- *    - 'granularity' (optional): Define the cache granularity using binary
- *       combinations of the cache granularity constants, e.g. DRUPAL_CACHE_PER_USER
- *       to cache for each user separately or
- *       DRUPAL_CACHE_PER_PAGE | DRUPAL_CACHE_PER_ROLE to cache separately for each
- *       page and role. If not specified the element is cached globally for each
- *       theme and language.
- *    - 'cid': Specify the cache ID directly. Either 'keys' or 'cid' is required.
- *       If 'cid' is set, 'keys' and 'granularity' are ignored. Use only if you
- *       have special requirements.
- *    - 'expire': Set to one of the cache lifetime constants.
- *    - 'bin': Specify a cache bin to cache the element in. Defaults to 'cache'.
+ *   - keys: An array of one or more keys that identify the element. If 'keys'
+ *     is set, the cache ID is created automatically from these keys. See
+ *     drupal_render_cid_create().
+ *   - granularity: (optional) Define the cache granularity using binary
+ *     combinations of the cache granularity constants, e.g. DRUPAL_CACHE_PER_USER
+ *     to cache for each user separately or
+ *     DRUPAL_CACHE_PER_PAGE | DRUPAL_CACHE_PER_ROLE to cache separately for each
+ *     page and role. If not specified the element is cached globally for each
+ *     theme and language.
+ *   - cid: Specify the cache ID directly. Either 'keys' or 'cid' is required.
+ *     If 'cid' is set, 'keys' and 'granularity' are ignored. Use only if you
+ *     have special requirements.
+ *   - expire: Set to one of the cache lifetime constants.
+ *   - bin: Specify a cache bin to cache the element in. Defaults to 'cache'.
  *
  * This function is usually called from within another function, like
  * drupal_get_form() or a theme function. Elements are sorted internally
@@ -5573,10 +5584,11 @@ function drupal_render_page($page) {
  * larger array). If the same array or array element is passed more than once
  * to drupal_render(), it simply returns a NULL value.
  *
- * @param $elements
+ * @param array $elements
  *   The structured array describing the data to be rendered.
- * @return
- *   The rendered HTML.
+ *
+ * @return string
+ *   The rendered HTML string.
  */
 function drupal_render(&$elements) {
   // Early-return nothing if user does not have access.
@@ -7208,16 +7220,17 @@ function debug($data, $label = NULL, $print_r = FALSE) {
 /**
  * Parse a dependency for comparison by drupal_check_incompatibility().
  *
- * @param $dependency
+ * @param string $dependency
  *   A dependency string, for example 'foo (>=8.x-4.5-beta5, 3.x)'.
- * @return
+ *
+ * @return array
  *   An associative array with three keys:
- *   - 'name' includes the name of the thing to depend on (e.g. 'foo').
- *   - 'original_version' contains the original version string (which can be
- *     used in the UI for reporting incompatibilities).
- *   - 'versions' is a list of associative arrays, each containing the keys
- *     'op' and 'version'. 'op' can be one of: '=', '==', '!=', '<>', '<',
- *     '<=', '>', or '>='. 'version' is one piece like '4.5-beta3'.
+ *   - name: The name of the thing to depend on (e.g. 'foo').
+ *   - original_version: The original version string (which can be used in the
+ *     UI for reporting incompatibilities).
+ *   - versions: A list of associative arrays, each of which contains the keys
+ *     'op' and 'version'. 'op' can be one of: '=', '==', '!=', '<>', '<', '<=',
+ *     '>', or '>='. 'version' is continuous text like '4.5-beta5'.
  *   Callers should pass this structure to drupal_check_incompatibility().
  *
  * @see drupal_check_incompatibility()
diff --git a/includes/database/pgsql/schema.inc b/includes/database/pgsql/schema.inc
index 9ed8a26..5bfbd91 100644
--- a/includes/database/pgsql/schema.inc
+++ b/includes/database/pgsql/schema.inc
@@ -29,12 +29,12 @@ class DatabaseSchema_pgsql extends DatabaseSchema {
    * We introspect the database to collect the information required by insert
    * and update queries.
    *
-   * @param $table_name
+   * @param string $table_name
    *   The non-prefixed name of the table.
-   * @return
+   * @return object
    *   An object with two member variables:
-   *     - 'blob_fields' that lists all the blob fields in the table.
-   *     - 'sequences' that lists the sequences used in that table.
+   *   - blob_fields: List of all the blob fields in the table.
+   *   - sequences: Listof all of the sequences used in that table.
    */
   public function queryTableInformation($table) {
     // Generate a key to reference this table's information on.
diff --git a/includes/database/schema.inc b/includes/database/schema.inc
index 41c6802..48caf8c 100644
--- a/includes/database/schema.inc
+++ b/includes/database/schema.inc
@@ -26,69 +26,67 @@ require_once __DIR__ . '/query.inc';
  * the module defines.
  *
  * The following keys are defined:
- *   - 'description': A string in non-markup plain text describing this table
- *     and its purpose. References to other tables should be enclosed in
- *     curly-brackets. For example, the node_revisions table
- *     description field might contain "Stores per-revision title and
- *     body data for each {node}."
- *   - 'fields': An associative array ('fieldname' => specification)
- *     that describes the table's database columns. The specification
- *     is also an array. The following specification parameters are defined:
- *     - 'description': A string in non-markup plain text describing this field
+ *   - description: A string in non-markup plain text describing this table are
+ *     its purpose. References to other tables should be enclosed in
+ *     curly-brackets. For example, the node_revisions table description field
+ *     might contain "Stores per-revision title and body data for each {node}."
+ *   - fields: An associative array ('fieldname' => specification) that
+ *     describes the table's database columns. The specification is also an
+ *     array where the following parameters are defined:
+ *     - description: A string in non-markup plain text describing this field
  *       and its purpose. References to other tables should be enclosed in
- *       curly-brackets. For example, the node table vid field
- *       description might contain "Always holds the largest (most
- *       recent) {node_revision}.vid value for this nid."
- *     - 'type': The generic datatype: 'char', 'varchar', 'text', 'blob', 'int',
+ *       curly-brackets. For example, the node table vid field description might
+ *       contain "Always holds the largest (most recent) {node_revision}.vid
+ *       value for this nid."
+ *     - type: The generic datatype: 'char', 'varchar', 'text', 'blob', 'int',
  *       'float', 'numeric', or 'serial'. Most types just map to the according
  *       database engine specific datatypes. Use 'serial' for auto incrementing
  *       fields. This will expand to 'INT auto_increment' on MySQL.
- *     - 'mysql_type', 'pgsql_type', 'sqlite_type', etc.: If you need to
- *       use a record type not included in the officially supported list
- *       of types above, you can specify a type for each database
- *       backend. In this case, you can leave out the type parameter,
- *       but be advised that your schema will fail to load on backends that
- *       do not have a type specified. A possible solution can be to
- *       use the "text" type as a fallback.
- *     - 'serialize': A boolean indicating whether the field will be stored as
- *       a serialized string.
- *     - 'size': The data size: 'tiny', 'small', 'medium', 'normal',
- *       'big'. This is a hint about the largest value the field will
- *       store and determines which of the database engine specific
- *       datatypes will be used (e.g. on MySQL, TINYINT vs. INT vs. BIGINT).
- *       'normal', the default, selects the base type (e.g. on MySQL,
- *       INT, VARCHAR, BLOB, etc.).
- *       Not all sizes are available for all data types. See
+ *     - mysql_type, pgsql_type, sqlite_type, etc.: If you need to use a record
+ *       type not included in the officially supported list of types above, you
+ *       can specify a type for each database backend. In this case, you can
+ *       leave out the type parameter, but be advised that your schema will fail
+ *       to load on backends that do not have a type specified. A possible
+ *       solution can be to use the "text" type as a fallback.
+ *     - serialize: A boolean indicating whether the field will be stored as a
+ *       serialized string.
+ *     - size: The data size: 'tiny', 'small', 'medium', 'normal', or 'big'.
+ *       This is a hint about the largest value the field will store and
+ *       determines which of the database engine specific datatypes will be used
+ *       (e.g. on MySQL, TINYINT vs. INT vs. BIGINT). The default, 'normal',
+ *       selects the base type (e.g. on MySQL, INT, VARCHAR, BLOB, etc.). Not
+ *       all sizes are available for all data types. See
  *       DatabaseSchema::getFieldTypeMap() for possible combinations.
- *     - 'not null': If true, no NULL values will be allowed in this
- *       database column. Defaults to false.
- *     - 'default': The field's default value. The PHP type of the
- *       value matters: '', '0', and 0 are all different. If you
- *       specify '0' as the default value for a type 'int' field it
- *       will not work because '0' is a string containing the
- *       character "zero", not an integer.
- *     - 'length': The maximal length of a type 'char', 'varchar' or 'text'
- *       field. Ignored for other field types.
- *     - 'unsigned': A boolean indicating whether a type 'int', 'float'
- *       and 'numeric' only is signed or unsigned. Defaults to
- *       FALSE. Ignored for other field types.
- *     - 'precision', 'scale': For type 'numeric' fields, indicates
- *       the precision (total number of significant digits) and scale
- *       (decimal digits right of the decimal point). Both values are
- *       mandatory. Ignored for other field types.
+ *     - not null: If true, no NULL values will be allowed in this database
+ *       column. Defaults to FALSE.
+ *     - default: The field's default value. The PHP type of the value matters:
+ *       '', '0', and 0 are all different. If you specify '0' as the default
+ *       value for a type 'int' field it will not work because '0' is a string
+ *       containing the character "zero", not an integer.
+ *     - length: The maximal length of a type 'char', 'varchar' or 'text' field.
+ *       Ignored for other field types.
+ *     - unsigned: A boolean indicating whether a type 'int', 'float' and
+ *       'numeric' only is signed or unsigned. Defaults to FALSE and is ignored
+ *       for other field types.
+ *     - precision: For type 'numeric' fields, indicates the precision (total
+ *       number of significant digits).  Both 'precision' and 'scale' are
+ *       mandatory for 'numeric' fields and ignored by other field types.
+ *     - scale: For type 'numeric' fields, indicates scale (decimal digits right
+ *       of the decimal point).  Both 'precision' and 'scale' are  mandatory for
+ *       'numeric' fields and ignored by other field types.
  *     All parameters apart from 'type' are optional except that type
  *     'numeric' columns must specify 'precision' and 'scale'.
- *  - 'primary key': An array of one or more key column specifiers (see below)
+ *  - primary key: An array of one or more key column specifiers (see below)
  *    that form the primary key.
- *  - 'unique keys': An associative array of unique keys ('keyname' =>
- *    specification). Each specification is an array of one or more
- *    key column specifiers (see below) that form a unique key on the table.
- *  - 'foreign keys': An associative array of relations ('my_relation' =>
- *    specification). Each specification is an array containing the name of
- *    the referenced table ('table'), and an array of column mappings
- *    ('columns'). Column mappings are defined by key pairs ('source_column' =>
+ *  - unique keys: An associative array of unique keys ('keyname' =>
+ *    specification). Each specification is an array of one or more key column
+ *    specifiers (see below) that form a unique key on the table.
+ *  - foreign keys: An associative array of relations ('my_relation' =>
+ *    specification). Each specification is an array containing the name of the
+ *    referenced table ('table'), and an array of column mappings ('columns').
+ *    Column mappings are defined by key pairs ('source_column' =>
  *    'referenced_column').
- *  - 'indexes':  An associative array of indexes ('indexname' =>
+ *  - indexes:  An associative array of indexes ('indexname' =>
  *    specification). Each specification is an array of one or more
  *    key column specifiers (see below) that form an index on the
  *    table.
diff --git a/includes/file.inc b/includes/file.inc
index d8dc3cd..344e6c2 100644
--- a/includes/file.inc
+++ b/includes/file.inc
@@ -1977,7 +1977,6 @@ function file_download() {
   return drupal_not_found();
 }
 
-
 /**
  * Finds all files that match a given mask in a given directory.
  *
@@ -1985,29 +1984,29 @@ function file_download() {
  * prevents hidden files and directories (such as SVN working directories)
  * from being scanned.
  *
- * @param $dir
+ * @param string $dir
  *   The base directory or URI to scan, without trailing slash.
- * @param $mask
+ * @param string $mask
  *   The preg_match() regular expression of the files to find.
- * @param $options
+ * @param array $options
  *   An associative array of additional options, with the following elements:
- *   - 'nomask': The preg_match() regular expression of the files to ignore.
+ *   - nomask: The preg_match() regular expression of the files to ignore.
  *     Defaults to '/(\.\.?|CVS)$/'.
- *   - 'callback': The callback function to call for each match. There is no
+ *   - callback: The callback function to call for each match. There is no
  *     default callback.
- *   - 'recurse': When TRUE, the directory scan will recurse the entire tree
+ *   - recurse: When TRUE, the directory scan will recurse the entire tree
  *     starting at the provided directory. Defaults to TRUE.
- *   - 'key': The key to be used for the returned associative array of files.
+ *   - key: The key to be used for the returned associative array of files.
  *     Possible values are 'uri', for the file's URI; 'filename', for the
  *     basename of the file; and 'name' for the name of the file without the
  *     extension. Defaults to 'uri'.
- *   - 'min_depth': Minimum depth of directories to return files from. Defaults
+ *   - min_depth: Minimum depth of directories to return files from. Defaults
  *     to 0.
- * @param $depth
+ * @param int $depth
  *   Current depth of recursion. This parameter is only used internally and
  *   should not be passed in.
  *
- * @return
+ * @return array
  *   An associative array (keyed on the chosen key) of objects with 'uri',
  *   'filename', and 'name' members corresponding to the matching files.
  */
@@ -2047,19 +2046,17 @@ function file_scan_directory($dir, $mask, $options = array(), $depth = 0) {
         }
       }
     }
-
     closedir($handle);
   }
-
   return $files;
 }
 
 /**
  * Determine the maximum file upload size by querying the PHP settings.
  *
- * @return
+ * @return int
  *   A file size limit in bytes based on the PHP upload_max_filesize and
- *   post_max_size
+ *   post_max_size.
  */
 function file_upload_max_size() {
   static $max_size = -1;
@@ -2081,16 +2078,16 @@ function file_upload_max_size() {
 /**
  * Determine an Internet Media Type, or MIME type from a filename.
  *
- * @param $uri
+ * @param string $uri
  *   A string containing the URI, path, or filename.
- * @param $mapping
+ * @param array $mapping
  *   An optional map of extensions to their mimetypes, in the form:
- *    - 'mimetypes': a list of mimetypes, keyed by an identifier,
- *    - 'extensions': the mapping itself, an associative array in which
- *      the key is the extension (lowercase) and the value is the mimetype
- *      identifier. If $mapping is NULL file_mimetype_mapping() is called.
+ *    - mimetypes: A list of mimetypes, keyed by an identifier,
+ *    - extensions: The mapping itself, an associative array in which the key is
+ *      the extension (lowercase) and the value is the mimetype identifier. If
+ *      $mapping is NULL, file_mimetype_mapping() is called.
  *
- * @return
+ * @return string
  *   The internet media type registered for the extension or
  *   application/octet-stream for unknown extensions.
  *
diff --git a/includes/form.inc b/includes/form.inc
index 1b163a0..cfd0c8a 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -4185,11 +4185,11 @@ function element_validate_number($element, &$form_state) {
 /**
  * Opens a new batch.
  *
- * @param $batch
+ * @param array $batch
  *   An array defining the batch. The following keys can be used -- only
  *   'operations' is required, and batch_init() provides default values for
  *   the messages.
- *   - 'operations': Array of function calls to be performed.
+ *   - operations: Array of function calls to be performed.
  *     Example:
  *     @code
  *     array(
@@ -4197,25 +4197,25 @@ function element_validate_number($element, &$form_state) {
  *       array('my_function_2', array($arg2_1, $arg2_2)),
  *     )
  *     @endcode
- *   - 'title': Title for the progress page. Only safe strings should be passed.
+ *   - title: Title for the progress page. Only safe strings should be passed.
  *     Defaults to t('Processing').
- *   - 'init_message': Message displayed while the processing is initialized.
+ *   - init_message: Message displayed while the processing is initialized.
  *     Defaults to t('Initializing.').
- *   - 'progress_message': Message displayed while processing the batch.
+ *   - progress_message: Message displayed while processing the batch.
  *     Available placeholders are @current, @remaining, @total, @percentage,
  *     @estimate and @elapsed. Defaults to t('Completed @current of @total.').
- *   - 'error_message': Message displayed if an error occurred while processing
+ *   - error_message: Message displayed if an error occurred while processing
  *     the batch. Defaults to t('An error has occurred.').
- *   - 'finished': Name of a function to be executed after the batch has
+ *   - finished: Name of a function to be executed after the batch has
  *     completed. This should be used to perform any result massaging that
  *     may be needed, and possibly save data in $_SESSION for display after
  *     final page redirection.
- *   - 'file': Path to the file containing the definitions of the
+ *   - file: Path to the file containing the definitions of the
  *     'operations' and 'finished' functions, for instance if they don't
  *     reside in the main .module file. The path should be relative to
  *     base_path(), and thus should be built using drupal_get_path().
- *   - 'css': Array of paths to CSS files to be used on the progress page.
- *   - 'url_options': options passed to url() when constructing redirect
+ *   - css: Array of paths to CSS files to be used on the progress page.
+ *   - url_options: Options passed to url() when constructing redirect
  *     URLs for the batch.
  *
  * Operations are added as new batch sets. Batch sets are used to ensure
diff --git a/includes/gettext.inc b/includes/gettext.inc
index 4d2ed9e..e4a1044 100644
--- a/includes/gettext.inc
+++ b/includes/gettext.inc
@@ -76,15 +76,19 @@ function _locale_import_po($file, $langcode, $mode) {
 /**
  * Parses Gettext Portable Object file into an array
  *
- * @param $op
+ * @param string $op
  *   Storage operation type: db-store or mem-store.
- * @param $file
+ * @param object $file
  *   Drupal file object corresponding to the PO file to import.
- * @param $mode
+ * @param int $mode
  *   Should existing translations be replaced LOCALE_IMPORT_KEEP or
  *   LOCALE_IMPORT_OVERWRITE.
- * @param $lang
+ * @param string $lang
  *   Language code.
+ *
+ * @return null|false
+ *   Returns FALSE if an error occurs.
+ *
  */
 function _locale_import_read_po($op, $file, $mode = NULL, $lang = NULL) {
 
@@ -96,13 +100,13 @@ function _locale_import_read_po($op, $file, $mode = NULL, $lang = NULL) {
   }
 
   /*
-   * The parser context. Can be:
-   *  - 'COMMENT' (#)
-   *  - 'MSGID' (msgid)
-   *  - 'MSGID_PLURAL' (msgid_plural)
-   *  - 'MSGCTXT' (msgctxt)
-   *  - 'MSGSTR' (msgstr or msgstr[])
-   *  - 'MSGSTR_ARR' (msgstr_arg)
+   * The parser context. Permissible values are:
+   *   - COMMENT: (#)
+   *   - MSGID: (msgid)
+   *   - MSGID_PLURAL: (msgid_plural)
+   *   - MSGCTXT: (msgctxt)
+   *   - MSGSTR: (msgstr or msgstr[])
+   *   - MSGSTR_ARR: (msgstr_arg)
    */
   $context = 'COMMENT';
 
diff --git a/includes/graph.inc b/includes/graph.inc
index 416fad6..f3c81de 100644
--- a/includes/graph.inc
+++ b/includes/graph.inc
@@ -9,7 +9,7 @@
 /**
  * Perform a depth first sort on a directed acyclic graph.
  *
- * @param $graph
+ * @param array $graph
  *   A three dimensional associated array, with the first keys being the names
  *   of the vertices, these can be strings or numbers. The second key is
  *   'edges' and the third one are again vertices, each such key representing
@@ -31,15 +31,15 @@
  *     $graph[3]['reverse_paths'][1] = 1;
  *   @endcode
  *
- * @return
+ * @return array
  *   The passed-in $graph with more secondary keys filled in:
- *   - 'paths': Contains a list of vertices than can be reached on a path from
+ *   - paths: Contains a list of vertices than can be reached on a path from
+ *     this vertex.
+ *   - reverse_paths: Contains a list of vertices that has a path from them to
  *     this vertex.
- *   - 'reverse_paths': Contains a list of vertices that has a path from them
- *     to this vertex.
- *   - 'weight': If there is a path from a vertex to another then the weight of
+ *   - weight: If there is a path from a vertex to another then the weight of
  *     the latter is higher.
- *   - 'component': Vertices in the same component have the same component
+ *   - component: Vertices in the same component have the same component
  *     identifier.
  *
  * @see _drupal_depth_first_search()
diff --git a/includes/image.inc b/includes/image.inc
index 8dc36b9..36b137d 100644
--- a/includes/image.inc
+++ b/includes/image.inc
@@ -367,17 +367,17 @@ function image_desaturate(stdClass $image) {
  *
  * Any changes to the file are not saved until image_save() is called.
  *
- * @param $file
+ * @param string $file
  *   Path to an image file.
- * @param $toolkit
- *   An optional, image toolkit name to override the default.
+ * @param string $toolkit
+ *   (optional) An image toolkit name to override the default.
  *
- * @return
+ * @return object|false
  *   An image object or FALSE if there was a problem loading the file. The
  *   image object has the following properties:
- *    - 'source' - The original file path.
- *    - 'info' - The array of information returned by image_get_info()
- *    - 'toolkit' - The name of the image toolkit requested when the image was
+ *    - source: The original file path.
+ *    - info: The array of information returned by image_get_info().
+ *    - toolkit: The name of the image toolkit requested when the image was
  *      loaded.
  *   Image toolkits may add additional properties. The caller is advised not to
  *   monkey about with them.
@@ -408,14 +408,14 @@ function image_load($file, $toolkit = FALSE) {
 /**
  * Close the image and save the changes to a file.
  *
- * @param $image
+ * @param object $image
  *   An image object returned by image_load(). The object's 'info' property
  *   will be updated if the file is saved successfully.
- * @param $destination
+ * @param string $destination
  *   Destination path where the image should be saved. If it is empty the
  *   original image file will be overwritten.
  *
- * @return
+ * @return bool
  *   TRUE on success, FALSE on failure.
  *
  * @see image_load()
diff --git a/includes/stream_wrappers.inc b/includes/stream_wrappers.inc
index e47668e..302d4d8 100644
--- a/includes/stream_wrappers.inc
+++ b/includes/stream_wrappers.inc
@@ -159,16 +159,16 @@ interface DrupalStreamWrapperInterface extends StreamWrapperInterface {
   /**
    * Returns the MIME type of the resource.
    *
-   * @param $uri
+   * @param string $uri
    *   The URI, path, or filename.
-   * @param $mapping
-   *   An optional map of extensions to their mimetypes, in the form:
-   *    - 'mimetypes': a list of mimetypes, keyed by an identifier,
-   *    - 'extensions': the mapping itself, an associative array in which
+   * @param array $mapping
+   *   (optional) A map of extensions to their mimetypes, in the form:
+   *    - mimetypes: A list of mimetypes, keyed by an identifier.
+   *    - extensions: The mapping itself, an associative array in which
    *      the key is the extension and the value is the mimetype identifier.
    *
-   * @return
-   *   Returns a string containing the MIME type of the resource.
+   * @return string
+   *   Text string containing the MIME type of the resource.
    */
   public static function getMimeType($uri, $mapping = NULL);
 
@@ -178,12 +178,12 @@ interface DrupalStreamWrapperInterface extends StreamWrapperInterface {
    * PHP lacks this functionality and it is not part of the official stream
    * wrapper interface. This is a custom implementation for Drupal.
    *
-   * @param $mode
+   * @param int $mode
    *   Integer value for the permissions. Consult PHP chmod() documentation
    *   for more information.
    *
-   * @return
-   *   Returns TRUE on success or FALSE on failure.
+   * @return bool
+   *   TRUE on success or FALSE on failure.
    */
   public function chmod($mode);
 
@@ -194,7 +194,7 @@ interface DrupalStreamWrapperInterface extends StreamWrapperInterface {
    * wrappers. We provide this as a default so that individual wrappers may
    * implement their own solutions.
    *
-   * @return
+   * @return string|false
    *   Returns a string with absolute pathname on success (implemented
    *   by core wrappers), or FALSE on failure or if the registered
    *   wrapper does not provide an implementation.
@@ -208,10 +208,10 @@ interface DrupalStreamWrapperInterface extends StreamWrapperInterface {
    * around the normal PHP dirname() function, which does not support stream
    * wrappers.
    *
-   * @param $uri
+   * @param string $uri
    *   An optional URI.
    *
-   * @return
+   * @return string|false
    *   A string containing the directory name, or FALSE if not applicable.
    *
    * @see drupal_dirname()
diff --git a/includes/theme.inc b/includes/theme.inc
index e50df06..becfc91 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -439,43 +439,43 @@ class ThemeRegistry Extends DrupalCacheArray {
 /**
  * Process a single implementation of hook_theme().
  *
- * @param $cache
- *   The theme registry that will eventually be cached; It is an associative
+ * @param array $cache
+ *   The theme registry which eventually will be cached. This is an associative
  *   array keyed by theme hooks, whose values are associative arrays describing
  *   the hook:
- *   - 'type': The passed-in $type.
- *   - 'theme path': The passed-in $path.
- *   - 'function': The name of the function generating output for this theme
- *     hook. Either defined explicitly in hook_theme() or, if neither 'function'
- *     nor 'template' is defined, then the default theme function name is used.
- *     The default theme function name is the theme hook prefixed by either
- *     'theme_' for modules or '$name_' for everything else. If 'function' is
- *     defined, 'template' is not used.
- *   - 'template': The filename of the template generating output for this
- *     theme hook. The template is in the directory defined by the 'path' key of
+ *   - type: The passed-in $type.
+ *   - theme path: The passed-in $path.
+ *   - function: The name of the function generating output for this theme hook.
+ *     Either defined explicitly in hook_theme() or, if neither 'function' nor
+ *     'template' is defined, then the default theme function name is used. The
+ *     default theme function name is the theme hook prefixed by either 'theme_'
+ *     for modules or '$name_' for everything else. If 'function' is defined,
+ *     'template' is not used.
+ *   - template: The filename of the template generating output for this theme
+ *     hook. The template is in the directory defined by the 'path' key of
  *     hook_theme() or defaults to $path.
- *   - 'variables': The variables for this theme hook as defined in
- *     hook_theme(). If there is more than one implementation and 'variables' is
- *     not specified in a later one, then the previous definition is kept.
- *   - 'render element': The renderable element for this theme hook as defined
- *     in hook_theme(). If there is more than one implementation and
+ *   - variables: The variables for this theme hook as defined in hook_theme().
+ *     If there is more than one implementation and 'variables' is not specified
+ *     in a later one, then the previous definition is kept.
+ *   - render element: The renderable element for this theme hook as defined in
+ *     hook_theme(). If there is more than one implementation and
  *     'render element' is not specified in a later one, then the previous
  *     definition is kept.
- *   - 'preprocess functions': See theme() for detailed documentation.
- *   - 'process functions': See theme() for detailed documentation.
- * @param $name
+ *   - preprocess functions: See theme() for detailed documentation.
+ *   - process functions: See theme() for detailed documentation.
+ * @param string $name
  *   The name of the module, theme engine, base theme engine, theme or base
  *   theme implementing hook_theme().
- * @param $type
+ * @param string $type
  *   One of 'module', 'theme_engine', 'base_theme_engine', 'theme', or
  *   'base_theme'. Unlike regular hooks that can only be implemented by modules,
  *   each of these can implement hook_theme(). _theme_process_registry() is
  *   called in aforementioned order and new entries override older ones. For
  *   example, if a theme hook is both defined by a module and a theme, then the
  *   definition in the theme will be used.
- * @param $theme
+ * @param object $theme
  *   The loaded $theme object as returned from list_themes().
- * @param $path
+ * @param string $path
  *   The directory where $name is. For example, modules/system or
  *   themes/bartik.
  *
@@ -703,25 +703,26 @@ function _theme_build_registry($theme, $base_theme, $theme_engine) {
  * Retrieved from the database, if available and the site is not in maintenance
  * mode; otherwise compiled freshly from the filesystem.
  *
- * @param $refresh
- *   Whether to reload the list of themes from the database. Defaults to FALSE.
+ * @param bool $refresh
+ *   Indicates whether to reload the list of themes from the database. Defaults
+ *   to FALSE.
  *
- * @return
+ * @return array
  *   An associative array of the currently available themes. The keys are the
  *   names of the themes and the values are objects having the following
  *   properties:
- *   - 'filename': The name of the .info file.
- *   - 'name': The name of the theme.
- *   - 'status': 1 for enabled, 0 for disabled themes.
- *   - 'info': The contents of the .info file.
- *   - 'stylesheets': A two dimensional array, using the first key for the
+ *   - filename: The name of the .info file.
+ *   - name: The name of the theme.
+ *   - status: 1 for enabled, 0 for disabled themes.
+ *   - info: The contents of the .info file.
+ *   - stylesheets: A two dimensional array, using the first key for the
  *     'media' attribute (e.g. 'all'), the second for the name of the file
  *     (e.g. style.css). The value is a complete filepath
  *     (e.g. themes/bartik/style.css).
- *   - 'scripts': An associative array of JavaScripts, using the filename as key
+ *   - scripts: An associative array of JavaScripts, using the filename as key
  *     and the complete filepath as value.
- *   - 'engine': The name of the theme engine.
- *   - 'base theme': The name of the base theme.
+ *   - engine: The name of the theme engine.
+ *   - base theme: The name of the base theme.
  */
 function list_themes($refresh = FALSE) {
   $list = &drupal_static(__FUNCTION__, array());
diff --git a/includes/update.inc b/includes/update.inc
index 416d203..ff8b63b 100644
--- a/includes/update.inc
+++ b/includes/update.inc
@@ -430,12 +430,12 @@ function update_get_update_list() {
  * dependency chain for each update, as provided by the depth-first search
  * algorithm in drupal_depth_first_search().
  *
- * @param $starting_updates
+ * @param array $starting_updates
  *   An array whose keys contain the names of modules with updates to be run
  *   and whose values contain the number of the first requested update for that
  *   module.
  *
- * @return
+ * @return array
  *   An array whose keys are the names of all update functions within the
  *   provided modules that would need to be run in order to fulfill the
  *   request, arranged in the order in which the update functions should be
@@ -445,14 +445,14 @@ function update_get_update_list() {
  *   algorithm, which encode detailed information about the dependency chain
  *   for this update function (for example: 'paths', 'reverse_paths', 'weight',
  *   and 'component'), as well as the following additional keys:
- *   - 'allowed': A boolean which is TRUE when the update function's
- *     dependencies are met, and FALSE otherwise. Calling functions should
- *     inspect this value before running the update.
- *   - 'missing_dependencies': An array containing the names of any other
- *     update functions that are required by this one but that are unavailable
- *     to be run. This array will be empty when 'allowed' is TRUE.
- *   - 'module': The name of the module that this update function belongs to.
- *   - 'number': The number of this update function within that module.
+ *   - allowed: A boolean which is TRUE when the update function's dependencies
+ *     are met, and FALSE otherwise. Calling functions should inspect this value
+ *     before running the update.
+ *   - missing_dependencies: An array containing the names of any other update
+ *     functions that are required by this one but that are unavailable to be
+ *     run. This array will be empty when 'allowed' is TRUE.
+ *   - module: The name of the module that this update function belongs to.
+ *   - number: The number of this update function within that module.
  *
  * @see drupal_depth_first_search()
  */
@@ -552,22 +552,22 @@ function update_get_update_function_list($starting_updates) {
  * modules which implement hook_update_dependencies(), and builds them into the
  * graph as well.
  *
- * @param $update_functions
+ * @param array $update_functions
  *   An organized array of update functions, in the format returned by
  *   update_get_update_function_list().
  *
- * @return
+ * @return array
  *   A multidimensional array representing the dependency graph, suitable for
  *   passing in to drupal_depth_first_search(), but with extra information
  *   about each update function also included. Each array key contains the name
  *   of an update function, including all update functions from the provided
  *   list as well as any outside update functions which they directly depend
  *   on. Each value is an associative array containing the following keys:
- *   - 'edges': A representation of any other update functions that immediately
+ *   - edges: A representation of any other update functions that immediately
  *     depend on this one. See drupal_depth_first_search() for more details on
  *     the format.
- *   - 'module': The name of the module that this update function belongs to.
- *   - 'number': The number of this update function within that module.
+ *   - module: The name of the module that this update function belongs to.
+ *   - number: The number of this update function within that module.
  *
  * @see drupal_depth_first_search()
  * @see update_resolve_dependencies()
diff --git a/misc/drupal.js b/misc/drupal.js
index 7ae737c..da118c5 100644
--- a/misc/drupal.js
+++ b/misc/drupal.js
@@ -171,19 +171,19 @@ Drupal.formatString = function(str, args) {
  *
  * See the documentation of the server-side t() function for further details.
  *
- * @param str
+ * @param string str
  *   A string containing the English string to translate.
- * @param args
- *   An object of replacements pairs to make after translation. Incidences
- *   of any key in this array are replaced with the corresponding value.
- *   See Drupal.formatString().
+ * @param object args
+ *   An object of replacement pairs to make after translation. Incidences of any
+ *   key in this array are replaced with the corresponding value.
+ * @param array options
+ *   - context: The context the source string belongs to. Defaults to the empty
+ *     context.
  *
- * @param options
- *   - 'context' (defaults to the empty context): The context the source string
- *     belongs to.
- *
- * @return
+ * @return string
  *   The translated string.
+ *
+ * @see Drupal.formatString()
  */
 Drupal.t = function (str, args, options) {
   options = options || {};
diff --git a/misc/tabledrag.js b/misc/tabledrag.js
index b9b5822..c24644f 100644
--- a/misc/tabledrag.js
+++ b/misc/tabledrag.js
@@ -1003,10 +1003,10 @@ Drupal.tableDrag.prototype.row.prototype.validIndentInterval = function (prevRow
 
   // Maximum indentation:
   if (!prevRow || $(prevRow).is(':not(.draggable)') || $(this.element).is('.tabledrag-root')) {
-    // Do not indent:
+    // Do not indent if:
     // - the first row in the table,
-    // - rows dragged below a non-draggable row,
-    // - 'root' rows.
+    // - the row is dragged below a non-draggable row, or
+    // - this is the 'tabledrag-root' row.
     maxIndent = 0;
   }
   else {
diff --git a/modules/block/block.api.php b/modules/block/block.api.php
index d33f594..bd8165a 100644
--- a/modules/block/block.api.php
+++ b/modules/block/block.api.php
@@ -35,16 +35,16 @@
  * to create several similar blocks that you identify within your module code
  * with numeric IDs). The maximum length for delta values is 32 bytes.
  *
- * @return
+ * @return array
  *   An associative array whose keys define the delta for each block and whose
  *   values contain the block descriptions. Each block description is itself an
  *   associative array, with the following key-value pairs:
- *   - 'info': (required) The human-readable administrative name of the block.
- *     This is used to identify the block on administration screens, and
- *     is not displayed to non-administrative users.
- *   - 'cache': (optional) A bitmask describing what kind of caching is
- *     appropriate for the block. Drupal provides the following bitmask
- *     constants for defining cache granularity:
+ *   - info: (required) The human-readable administrative name of the block.
+ *     This is used to identify the block on administration screens, and is not
+ *     displayed to non-administrative users.
+ *   - cache: (optional) A bitmask describing what type of caching is to be used
+ *     with the block. The following bitmask constants may be used in defining
+ *     cache granularity:
  *     - DRUPAL_CACHE_PER_ROLE (default): The block can change depending on the
  *       roles the user viewing the page belongs to.
  *     - DRUPAL_CACHE_PER_USER: The block can change depending on the user
@@ -56,26 +56,26 @@
  *     - DRUPAL_CACHE_GLOBAL: The block is the same for every user on every
  *       page where it is visible.
  *     - DRUPAL_NO_CACHE: The block should not get cached.
- *   - 'properties': (optional) Array of additional metadata to add to the
- *     block. Common properties include:
- *     - 'administrative': Boolean which categorizes this block as usable in
- *       an administrative context. This might include blocks which help an
- *       administrator approve/deny comments, or view recently created
- *       user accounts.
- *   - 'weight': (optional) Initial value for the ordering weight of this block.
+ *   - properties: (optional) Array of additional metadata to add to the block.
+ *     Common properties include:
+ *     - administrative: (boolean) Indicates whether this block is usable in an
+ *       administrative context. This might include blocks which help a user
+ *       with administrative privledges approve/deny comments, or view recently
+ *       created user accounts.
+ *   - weight: (optional) Initial value for the ordering weight of this block.
  *     Most modules do not provide an initial value, and any value provided can
  *     be modified by a user on the block configuration screen.
- *   - 'status': (optional) Initial value for block enabled status. (1 =
- *     enabled, 0 = disabled). Most modules do not provide an initial value,
- *     and any value provided can be modified by a user on the block
- *     configuration screen.
- *   - 'region': (optional) Initial value for theme region within which this
- *     block is set. Most modules do not provide an initial value, and
- *     any value provided can be modified by a user on the block configuration
- *     screen. Note: If you set a region that isn't available in the currently
- *     enabled theme, the block will be disabled.
- *   - 'visibility': (optional) Initial value for the visibility flag, which
- *     tells how to interpret the 'pages' value. Possible values are:
+ *   - status: (optional) Initial value for block enabled status. (1 = enabled,
+ *     0 = disabled). Most modules do not provide an initial value, and any
+ *     value provided can be modified by a user on the block configuration
+ *     screen.
+ *   - region: (optional) Initial value for theme region within which this
+ *     block is set. Most modules do not provide an initial value, and any value
+ *     provided can be modified by a user on the block configuration screen.
+ *     Note: If you set a region that isn't available in the currently enabled
+ *     theme, the block will be disabled.
+ *   - visibility: (optional) Initial value for the visibility flag, which tells
+ *     how to interpret the 'pages' value. Possible values are:
  *     - BLOCK_VISIBILITY_NOTLISTED: Show on all pages except listed pages.
  *       'pages' lists the paths where the block should not be shown.
  *     - BLOCK_VISIBILITY_LISTED: Show only on listed pages. 'pages' lists the
@@ -85,7 +85,7 @@
  *     Most modules do not provide an initial value for 'visibility' or 'pages',
  *     and any value provided can be modified by a user on the block
  *     configuration screen.
- *   - 'pages': (optional) See 'visibility' above.
+ *   - pages: (optional) See 'visibility' above.
  *
  * For a detailed usage example, see block_example.module.
  *
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index ae9278c..18f0dd7 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -2529,11 +2529,11 @@ function comment_action_info() {
 /**
  * Publishes a comment.
  *
- * @param $comment
- *   An optional comment object.
+ * @param object $comment
+ *   A comment object.
  * @param array $context
  *   Array with components:
- *   - 'cid': Comment ID. Required if $comment is not given.
+ *   - cid: The comment ID. Required if $comment is not given.
  *
  * @ingroup actions
  */
@@ -2556,11 +2556,11 @@ function comment_publish_action($comment, $context = array()) {
 /**
  * Unpublishes a comment.
  *
- * @param $comment
- *   An optional comment object.
+ * @param object $comment
+ *   A comment object.
  * @param array $context
  *   Array with components:
- *   - 'cid': Comment ID. Required if $comment is not given.
+ *   - cid: The comment ID. Required if $comment is not given.
  *
  * @ingroup actions
  */
@@ -2583,12 +2583,12 @@ function comment_unpublish_action($comment, $context = array()) {
 /**
  * Unpublishes a comment if it contains certain keywords.
  *
- * @param $comment
+ * @param object $comment
  *   Comment object to modify.
  * @param array $context
  *   Array with components:
- *   - 'keywords': Keywords to look for. If the comment contains at least one
- *     of the keywords, it is unpublished.
+ *   - keywords: Keywords to look for. If the comment contains at least one of
+ *     the keywords, it is unpublished.
  *
  * @ingroup actions
  * @see comment_unpublish_by_keyword_action_form()
diff --git a/modules/entity/entity.query.inc b/modules/entity/entity.query.inc
index b4e91a2..017dcd5 100644
--- a/modules/entity/entity.query.inc
+++ b/modules/entity/entity.query.inc
@@ -219,13 +219,13 @@ class EntityFieldQuery {
    * conditions. For "taxonomy_term", propertyCondition('vid') can be used
    * instead.
    *
-   * @param $name
+   * @param string $name
    *   'entity_type', 'bundle', 'revision_id' or 'entity_id'.
-   * @param $value
+   * @param mixed $value
    *   The value for $name. In most cases, this is a scalar. For more complex
    *   options, it is an array. The meaning of each element in the array is
    *   dependent on $operator.
-   * @param $operator
+   * @param string $operator
    *   Possible values:
    *   - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
    *     operators expect $value to be a literal of the same type as the
@@ -239,6 +239,11 @@ class EntityFieldQuery {
    *
    * @return EntityFieldQuery
    *   The called object.
+   *
+   * @todo: The documentation style for '@param string $operator' is incorrect and needs  // Purposely longer than 80 characters so people notice
+   *   to be corrected.  The problem is Drupal documentation standards are not
+   *   clear on how to deal with literal strings or if the same description
+   *   applies to multiple list values.  This needs to be clarified.
    */
   public function entityCondition($name, $value, $operator = NULL) {
     $this->entityConditions[$name] = array(
@@ -331,19 +336,19 @@ class EntityFieldQuery {
   /**
    * Adds the given condition to the proper condition array.
    *
-   * @param $conditions
+   * @param array $conditions
    *   A reference to an array of conditions.
-   * @param $field
+   * @param string|array $field
    *   Either a field name or a field array.
-   * @param $column
+   * @param string|null $column
    *   A column defined in the hook_field_schema() of this field. If this is
    *   omitted then the query will find only entities that have data in this
    *   field, using the entity and property conditions if there are any.
-   * @param $value
+   * @param mixed $value
    *   The value to test the column value against. In most cases, this is a
    *   scalar. For more complex options, it is an array. The meaning of each
    *   element in the array is dependent on $operator.
-   * @param $operator
+   * @param string $operator
    *   Possible values:
    *   - '=', '<>', '>', '>=', '<', '<=', 'STARTS_WITH', 'CONTAINS': These
    *     operators expect $value to be a literal of the same type as the
@@ -354,7 +359,7 @@ class EntityFieldQuery {
    *     of the same type as the column.
    *   The operator can be omitted, and will default to 'IN' if the value is an
    *   array, or to '=' otherwise.
-   * @param $delta_group
+   * @param array $delta_group
    *   An arbitrary identifier: conditions in the same group must have the same
    *   $delta_group. For example, let's presume a multivalue field which has
    *   two columns, 'color' and 'shape', and for entity id 1, there are two
@@ -364,12 +369,17 @@ class EntityFieldQuery {
    *   against any combination of deltas. By passing the conditions with the
    *   same $delta_group it will ensure that only values attached to the same
    *   delta are matched, and entity 1 would then be excluded from the results.
-   * @param $language_group
+   * @param sring $language_group
    *   An arbitrary identifier: conditions in the same group must have the same
    *   $language_group.
    *
    * @return EntityFieldQuery
    *   The called object.
+   *
+   * @todo: The documentation style for '@param string $operator' is incorrect and needs  // Purposely longer than 80 characters so people notice
+   *   to be corrected.  The problem is Drupal documentation standards are not
+   *   clear on how to deal with literal strings or if the same description
+   *   applies to multiple list values.  This needs to be clarified.
    */
   protected function addFieldCondition(&$conditions, $field, $column = NULL, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
     if (is_scalar($field)) {
diff --git a/modules/field/field.attach.inc b/modules/field/field.attach.inc
index 3f5520a..be0e6a1 100644
--- a/modules/field/field.attach.inc
+++ b/modules/field/field.attach.inc
@@ -14,14 +14,14 @@ class FieldValidationException extends FieldException {
  /**
   * Constructor for FieldValidationException.
   *
-  * @param $errors
-  *   An array of field validation errors, keyed by field name and
-  *   delta that contains two keys:
-  *   - 'error': A machine-readable error code string, prefixed by
-  *     the field module name. A field widget may use this code to decide
-  *     how to report the error.
-  *   - 'message': A human-readable error message such as to be
-  *     passed to form_error() for the appropriate form element.
+  * @param array $errors
+  *   An array of field validation errors, keyed by field name and delta that
+  *   contains two keys:
+  *   - error: A machine-readable error code string, prefixed by the field
+  *     module name. A field widget may use this code to decide how to report
+  *     the error.
+  *   - message: A human-readable error message such as to be passed to
+  *     form_error() for the appropriate form element.
   */
   function __construct($errors) {
     $this->errors = $errors;
@@ -122,7 +122,7 @@ define('FIELD_STORAGE_INSERT', 'insert');
 /**
  * Invoke a field hook.
  *
- * @param $op
+ * @param string $op
  *   Possible operations include:
  *   - form
  *   - validate
@@ -133,41 +133,43 @@ define('FIELD_STORAGE_INSERT', 'insert');
  *   - delete revision
  *   - view
  *   - prepare translation
- * @param $entity_type
+ * @param string $entity_type
  *   The type of $entity; e.g. 'node' or 'user'.
- * @param $entity
+ * @param object $entity
  *   The fully formed $entity_type entity.
- * @param $a
+ * @param mixed $a
  *   - The $form in the 'form' operation.
  *   - The value of $view_mode in the 'view' operation.
  *   - Otherwise NULL.
- * @param $b
+ * @param array|null $b
  *   - The $form_state in the 'submit' operation.
  *   - Otherwise NULL.
- * @param $options
+ * @param array $options
  *   An associative array of additional options, with the following keys:
- *  - 'field_name': The name of the field whose operation should be
- *    invoked. By default, the operation is invoked on all the fields
- *    in the entity's bundle. NOTE: This option is not compatible with
- *    the 'deleted' option; the 'field_id' option should be used
- *    instead.
- *  - 'field_id': The id of the field whose operation should be
- *    invoked. By default, the operation is invoked on all the fields
- *    in the entity's' bundles.
- *  - 'default': A boolean value, specifying which implementation of
- *    the operation should be invoked.
- *    - if FALSE (default), the field types implementation of the operation
- *      will be invoked (hook_field_[op])
- *    - If TRUE, the default field implementation of the field operation
- *      will be invoked (field_default_[op])
- *    Internal use only. Do not explicitely set to TRUE, but use
- *    _field_invoke_default() instead.
- *  - 'deleted': If TRUE, the function will operate on deleted fields
- *    as well as non-deleted fields. If unset or FALSE, only
- *    non-deleted fields are operated on.
- *  - 'language': A language code or an array of language codes keyed by field
- *    name. It will be used to narrow down to a single value the available
- *    languages to act on.
+ *   - field_name: The name of the field whose operation should be invoked. By
+ *     default, the operation is invoked on all the fields in the entity's
+ *     bundle. NOTE: This option is not compatible with the 'deleted' option;
+ *     the 'field_id' option should be used instead.
+ *   - field_id: The ID of the field whose operation should be invoked. By
+ *     default, the operation is invoked on all the fields in the entity's'
+ *     bundles.
+ *   - default: (boolean) Indicates which implementation of the operation should
+ *     be invoked:
+ *     - if FALSE (default), the field types implementation of the operation
+ *       will be invoked (hook_field_[op]).
+ *     - If TRUE, the default field implementation of the field operation will
+ *       be invoked (field_default_[op]).
+ *     For internal use only. Do not explicitely set to TRUE; instead use
+ *     _field_invoke_default().
+ *   - deleted: (boolean) If TRUE, the function will operate on deleted fields as
+ *     well as non-deleted fields. If unset or FALSE, only non-deleted fields are
+ *     operated on.
+ *   - language: A language code or an array of language codes keyed by field
+ *     name. It will be used to narrow down to a single value the available
+ *     languages to act on.
+ *
+ * @return array
+ *   An array of result values.
  */
 function _field_invoke($op, $entity_type, $entity, &$a = NULL, &$b = NULL, $options = array()) {
   // Merge default options.
@@ -215,53 +217,52 @@ function _field_invoke($op, $entity_type, $entity, &$a = NULL, &$b = NULL, $opti
       }
     }
   }
-
   return $return;
 }
 
 /**
  * Invoke a field hook across fields on multiple entities.
  *
- * @param $op
+ * @param string $op
  *   Possible operations include:
  *   - load
  *   - prepare_view
  *   For all other operations, use _field_invoke() / field_invoke_default()
  *   instead.
- * @param $entity_type
+ * @param string $entity_type
  *   The type of $entity; e.g. 'node' or 'user'.
- * @param $entities
+ * @param array $entities
  *   An array of entities, keyed by entity id.
  * @param $a
  *   - The $age parameter in the 'load' operation.
  *   - Otherwise NULL.
  * @param $b
  *   Currently always NULL.
- * @param $options
+ * @param array $options
  *   An associative array of additional options, with the following keys:
- *  - 'field_name': The name of the field whose operation should be
- *    invoked. By default, the operation is invoked on all the fields
- *    in the entity's bundle. NOTE: This option is not compatible with
- *    the 'deleted' option; the 'field_id' option should be used instead.
- *  - 'field_id': The id of the field whose operation should be
- *    invoked. By default, the operation is invoked on all the fields
- *    in the entity's' bundles.
- *  - 'default': A boolean value, specifying which implementation of
- *    the operation should be invoked.
- *    - if FALSE (default), the field types implementation of the operation
- *      will be invoked (hook_field_[op])
- *    - If TRUE, the default field implementation of the field operation
- *      will be invoked (field_default_[op])
- *    Internal use only. Do not explicitely set to TRUE, but use
- *    _field_invoke_multiple_default() instead.
- *  - 'deleted': If TRUE, the function will operate on deleted fields
- *    as well as non-deleted fields. If unset or FALSE, only
- *    non-deleted fields are operated on.
- *  - 'language': A language code or an array of arrays of language codes keyed
- *    by entity id and field name. It will be used to narrow down to a single
- *    value the available languages to act on.
- *
- * @return
+ *   - field_name: The name of the field whose operation should be invoked. By
+ *     default, the operation is invoked on all the fields in the entity's
+ *     bundle. NOTE: This option is not compatible with the 'deleted' option;
+ *     the 'field_id' option should be used instead.
+ *   - field_id: The ID of the field whose operation should be invoked. By
+ *     default, the operation is invoked on all the fields in the entity's
+ *     bundles.
+ *   - default: (boolean) Indicates which implementation of the operation should
+ *     be invoked:
+ *     - if FALSE (default), the field types implementation of the operation
+ *       will be invoked (hook_field_[op]).
+ *     - If TRUE, the default field implementation of the field operation will
+ *       be invoked (field_default_[op]).
+ *     For internal use only. Do not explicitely set to TRUE; instead use
+ *     _field_invoke_default().
+ *   - deleted: If TRUE, the function will operate on deleted fields as well as
+ *     non-deleted fields. If unset or FALSE, only non-deleted fields are
+ *     operated upon.
+ *   - language: A language code or an array of arrays of language codes keyed
+ *     by entity id and field name. It will be used to narrow down to a single
+ *     value the available languages to act on.
+ *
+ * @return array
  *   An array of returned values keyed by entity id.
  */
 function _field_invoke_multiple($op, $entity_type, $entities, &$a = NULL, &$b = NULL, $options = array()) {
@@ -364,9 +365,8 @@ function _field_invoke_multiple($op, $entity_type, $entities, &$a = NULL, &$b =
 /**
  * Invoke field.module's version of a field hook.
  *
- * This function invokes the field_default_[op]() function.
- * Use _field_invoke() to invoke the field type implementation,
- * hook_field_[op]().
+ * This function invokes the field_default_[op]() function. Use _field_invoke()
+ * to invoke the field type implementation, hook_field_[op]().
  *
  * @see _field_invoke()
  */
@@ -580,27 +580,26 @@ function field_attach_form($entity_type, $entity, &$form, &$form_state, $langcod
  * class, and thus, in most cases, doesn't need to be explicitly called by the
  * entity type module.
  *
- * @param $entity_type
+ * @param string $entity_type
  *   The type of $entity; e.g., 'node' or 'user'.
- * @param $entities
+ * @param array $entities
  *   An array of entities for which to load fields, keyed by entity ID.
  *   Each entity needs to have its 'bundle', 'id' and (if applicable)
  *   'revision' keys filled in. The function adds the loaded field data
  *   directly in the entity objects of the $entities array.
- * @param $age
+ * @param int $age
  *   FIELD_LOAD_CURRENT to load the most recent revision for all
  *   fields, or FIELD_LOAD_REVISION to load the version indicated by
  *   each entity. Defaults to FIELD_LOAD_CURRENT; use
  *   field_attach_load_revision() instead of passing FIELD_LOAD_REVISION.
- * @param $options
+ * @param array $options
  *   An associative array of additional options, with the following keys:
- *   - 'field_id': The field ID that should be loaded, instead of
- *     loading all fields, for each entity. Note that returned entities
- *     may contain data for other fields, for example if they are read
- *     from a cache.
- *   - 'deleted': If TRUE, the function will operate on deleted fields
- *     as well as non-deleted fields. If unset or FALSE, only
- *     non-deleted fields are operated on.
+ *   - field_id: The field ID that should be loaded, instead of loading all
+ *     fields, for each entity. Note that returned entities may contain data for
+ *     other fields; if, for example, they are read from a cache.
+ *   - deleted: (boolean) If TRUE, the function will operate on deleted fields
+ *     as well as non-deleted fields. If unset or FALSE, only non-deleted fields
+ *     are operated upon.
  */
 function field_attach_load($entity_type, $entities, $age = FIELD_LOAD_CURRENT, $options = array()) {
   $field_info = field_info_field_by_ids();
diff --git a/modules/field/field.default.inc b/modules/field/field.default.inc
index cb49bdb..e234c3a 100644
--- a/modules/field/field.default.inc
+++ b/modules/field/field.default.inc
@@ -47,29 +47,29 @@ function field_default_extract_form_values($entity_type, $entity, $field, $insta
  * Generic field validation handler.
  *
  * Possible error codes:
- * - 'field_cardinality': The number of values exceeds the field cardinality.
+ * - field_cardinality: The number of values exceeds the field cardinality.
  *
- * @see _hook_field_validate()
- *
- * @param $entity_type
+ * @param string $entity_type
  *   The type of $entity.
- * @param $entity
+ * @param object $entity
  *   The entity for the operation.
- * @param $field
+ * @param array $field
  *   The field structure for the operation.
- * @param $instance
+ * @param array $instance
  *   The instance structure for $field on $entity's bundle.
- * @param $langcode
+ * @param string $langcode
  *   The language associated to $items.
- * @param $items
+ * @param ??? $items                                                              // Need help on this type hinting definition
  *   $entity->{$field['field_name']}[$langcode], or an empty array if unset.
- * @param $errors
+ * @param array $errors
  *   The array of errors, keyed by field name and by value delta, that have
- *   already been reported for the entity. The function should add its errors
- *   to this array. Each error is an associative array, with the following
- *   keys and values:
- *   - 'error': an error code (should be a string, prefixed with the module name)
- *   - 'message': the human readable message to be displayed.
+ *   already been reported for the entity. The function should add its errors to
+ *   this array. Each error is an associative array, with the following keys and
+ *   values:
+ *   - error: An error code (should be a string, prefixed with the module name).
+ *   - message: The human-readable message to be reported.
+ *
+ * @see _hook_field_validate()
  */
 function field_default_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
   // Filter out empty values.
diff --git a/modules/field/field.info.inc b/modules/field/field.info.inc
index 69fefca..84a1170 100644
--- a/modules/field/field.info.inc
+++ b/modules/field/field.info.inc
@@ -36,26 +36,26 @@ function field_info_cache_clear() {
 /**
  * Collates all information on field types, widget types and related structures.
  *
- * @return
+ * @return array
  *   An associative array containing:
- *   - 'field types': Array of hook_field_info() results, keyed by field_type.
+ *   - field types: An array of hook_field_info() results, keyed by field_type.
  *     Each element has the following components: label, description, settings,
- *     instance_settings, default_widget, default_formatter, and behaviors
- *     from hook_field_info(), as well as module, giving the module that exposes
- *     the field type.
- *   - 'widget types': Array of hook_field_widget_info() results, keyed by
+ *     instance_settings, default_widget, default_formatter, and behaviors from
+ *     hook_field_info(), as well as module, giving the module that exposes the
+ *     field type.
+ *   - widget types: An array of hook_field_widget_info() results, keyed by
  *     widget_type. Each element has the following components: label, field
- *     types, settings, and behaviors from hook_field_widget_info(), as well
- *     as module, giving the module that exposes the widget type.
- *   - 'formatter types': Array of hook_field_formatter_info() results, keyed by
- *     formatter_type. Each element has the following components: label, field
- *     types, and behaviors from hook_field_formatter_info(), as well as
+ *     types, settings, and behaviors from hook_field_widget_info(), as well as
+ *     module, giving the module that exposes the widget type.
+ *   - formatter types: An array of hook_field_formatter_info() results, keyed
+ *     by formatter_type. Each element has the following components: label,
+ *     field types, and behaviors from hook_field_formatter_info(), as well as
  *     module, giving the module that exposes the formatter type.
- *   - 'storage types': Array of hook_field_storage_info() results, keyed by
+ *   - storage types: An array of hook_field_storage_info() results, keyed by
  *     storage type names. Each element has the following components: label,
  *     description, and settings from hook_field_storage_info(), as well as
  *     module, giving the module that exposes the storage type.
- *   - 'fieldable types': Array of hook_entity_info() results, keyed by
+ *   - fieldable types: An array of hook_entity_info() results, keyed by
  *     entity_type. Each element has the following components: name, id key,
  *     revision key, bundle key, cacheable, and bundles from hook_entity_info(),
  *     as well as module, giving the module that exposes the entity type.
diff --git a/modules/field/modules/list/list.module b/modules/field/modules/list/list.module
index 6523551..0f46e96 100644
--- a/modules/field/modules/list/list.module
+++ b/modules/field/modules/list/list.module
@@ -370,7 +370,7 @@ function _list_values_in_use($field, $values) {
  * Implements hook_field_validate().
  *
  * Possible error codes:
- * - 'list_illegal_value': The value is not part of the list of allowed values.
+ * - list_illegal_value: The value is not part of the list of allowed values.
  */
 function list_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
   $allowed_values = list_allowed_values($field);
diff --git a/modules/field/modules/number/number.module b/modules/field/modules/number/number.module
index 87e2d3a..86d1b74 100644
--- a/modules/field/modules/number/number.module
+++ b/modules/field/modules/number/number.module
@@ -129,8 +129,8 @@ function number_field_instance_settings_form($field, $instance) {
  * Implements hook_field_validate().
  *
  * Possible error codes:
- * - 'number_min': The value is less than the allowed minimum value.
- * - 'number_max': The value is greater than the allowed maximum value.
+ * - number_min: The value is less than the allowed minimum value.
+ * - number_max: The value is greater than the allowed maximum value.
  */
 function number_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
   foreach ($items as $delta => $item) {
diff --git a/modules/field/modules/text/text.module b/modules/field/modules/text/text.module
index d73814f..12f04fa 100644
--- a/modules/field/modules/text/text.module
+++ b/modules/field/modules/text/text.module
@@ -112,13 +112,13 @@ function text_field_instance_settings_form($field, $instance) {
  * Implements hook_field_validate().
  *
  * Possible error codes:
- * - 'text_value_max_length': The value exceeds the maximum length.
- * - 'text_summary_max_length': The summary exceeds the maximum length.
+ * - text_value_max_length: The value exceeds the maximum length.
+ * - text_summary_max_length: The summary exceeds the maximum length.
  */
 function text_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
   foreach ($items as $delta => $item) {
-    // @todo Length is counted separately for summary and value, so the maximum
-    //   length can be exceeded very easily.
+    // @todo: Length is calculated separately for summary and value, so the
+    //   maximum length  for the other can be exceeded very easily.
     foreach (array('value', 'summary') as $column) {
       if (!empty($item[$column])) {
         if (!empty($field['settings']['max_length']) && drupal_strlen($item[$column]) > $field['settings']['max_length']) {
diff --git a/modules/field/tests/field_test.field.inc b/modules/field/tests/field_test.field.inc
index b8a2939..da6efb0 100644
--- a/modules/field/tests/field_test.field.inc
+++ b/modules/field/tests/field_test.field.inc
@@ -76,7 +76,7 @@ function field_test_field_load($entity_type, $entities, $field, $instances, $lan
  * Implements hook_field_validate().
  *
  * Possible error codes:
- * - 'field_test_invalid': The value is invalid.
+ * - field_test_invalid: The value is invalid.
  */
 function field_test_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
   foreach ($items as $delta => $item) {
diff --git a/modules/filter/filter.module b/modules/filter/filter.module
index 2ad725a..5821a0c 100644
--- a/modules/filter/filter.module
+++ b/modules/filter/filter.module
@@ -166,27 +166,31 @@ function filter_format_load($format_id) {
 /**
  * Save a text format object to the database.
  *
- * @param $format
+ * @param object $format
  *   A format object using the properties:
- *   - 'format': A machine-readable name representing the ID of the text format
- *     to save. If this corresponds to an existing text format, that format
- *     will be updated; otherwise, a new format will be created.
- *   - 'name': The title of the text format.
- *   - 'status': (optional) An integer indicating whether the text format is
+ *   - format: A machine-readable name representing the ID of the text format to
+ *     save. If this corresponds to an existing text format, that format will be
+ *     updated; otherwise, a new format will be created.
+ *   - name: The title of the text format.
+ *   - status: (optional) An integer indicating whether the text format is
  *     enabled (1) or not (0). Defaults to 1.
- *   - 'weight': (optional) The weight of the text format, which controls its
+ *   - weight: (optional) The weight of the text format, which controls its
  *     placement in text format lists. If omitted, the weight is set to 0.
- *   - 'filters': (optional) An associative, multi-dimensional array of filters
+ *   - filters: (optional) An associative, multi-dimensional array of filters
  *     assigned to the text format, keyed by the name of each filter and using
  *     the properties:
- *     - 'weight': (optional) The weight of the filter in the text format. If
+ *     - weight: (optional) The weight of the filter in the text format. If
  *       omitted, either the currently stored weight is retained (if there is
  *       one), or the filter is assigned a weight of 10, which will usually
  *       put it at the bottom of the list.
- *     - 'status': (optional) A boolean indicating whether the filter is
- *       enabled in the text format. If omitted, the filter will be disabled.
- *     - 'settings': (optional) An array of configured settings for the filter.
- *       See hook_filter_info() for details.
+ *     - status: (optional) A boolean indicating whether the filter is enabled
+ *       in the text format. If omitted, the filter will be disabled.
+ *     - settings: (optional) An array of configured settings for the filter.
+ *
+ * @return int
+ *   Interger code indicating the status of the save operation.
+ *
+ * @see hook_filter_info()
  */
 function filter_format_save($format) {
   $format->name = trim($format->name);
diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index 65c5489..0301454 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -720,14 +720,16 @@ function forum_form($node, $form_state) {
 /**
  * Returns a tree of all forums for a given taxonomy term ID.
  *
- * @param $tid
- *    (optional) Taxonomy ID of the forum, if not givin all forums will be returned.
- * @return
+ * @param int $tid
+ *   (optional) Taxonomy ID of the forum, if not givin all forums will be
+ *   returned.
+ *
+ * @return object
  *   A tree of taxonomy objects, with the following additional properties:
- *    - 'num_topics': Number of topics in the forum
- *    - 'num_posts': Total number of posts in all topics
- *    - 'last_post': Most recent post for the forum
- *    - 'forums': An array of child forums
+ *   - num_topics: Number of topics in the forum.
+ *   - num_posts: Total number of posts in all topics.
+ *   - last_post: Most recent post for the forum.
+ *   - forums: An array of child forums.
  */
 function forum_forum_load($tid = NULL) {
   $cache = &drupal_static(__FUNCTION__, array());
@@ -835,8 +837,13 @@ function forum_forum_load($tid = NULL) {
 }
 
 /**
- * Calculate the number of nodes the user has not yet read and are newer
- * than NODE_NEW_LIMIT.
+ * Calculates number of nodes the user has not yet read.
+ *
+ * The value returned is constrained by those newer than
+ * NODE_NEW_LIMIT.
+ *
+ * @return int
+ *   The number of nodes the user has yet to read.
  */
 function _forum_topics_unread($term, $uid) {
   $query = db_select('node', 'n');
diff --git a/modules/node/node.api.php b/modules/node/node.api.php
index cab476e..f2d0c4d 100644
--- a/modules/node/node.api.php
+++ b/modules/node/node.api.php
@@ -219,22 +219,21 @@ function hook_node_grants($account, $op) {
  * integers and not boolean TRUE and FALSE.
  *
  * Each permissions item in the array is an array with the following elements:
- * - 'realm': The name of a realm that the module has defined in
+ * - realm: The name of a realm that the module has defined in
  *   hook_node_grants().
- * - 'gid': A 'grant ID' from hook_node_grants().
- * - 'grant_view': If set to 1 a user that has been identified as a member
- *   of this gid within this realm can view this node. This should usually be
- *   set to $node->status. Failure to do so may expose unpublished content
- *   to some users.
- * - 'grant_update': If set to 1 a user that has been identified as a member
- *   of this gid within this realm can edit this node.
- * - 'grant_delete': If set to 1 a user that has been identified as a member
- *   of this gid within this realm can delete this node.
- * - 'priority': If multiple modules seek to set permissions on a node, the
- *   realms that have the highest priority will win out, and realms with a lower
- *   priority will not be written. If there is any doubt, it is best to
- *   leave this 0.
- *
+ * - gid: A 'grant ID' from hook_node_grants().
+ * - grant_view: If set to 1 a user that has been identified as a member of this
+ *   gid within this realm can view this node. This should usually be set to
+ *   $node->status. Failure to do so may expose unpublished content to some
+ *   users.
+ * - grant_update: If set to 1 a user that has been identified as a member of
+ *   this gid within this realm can edit this node.
+ * - grant_delete: If set to 1 a user that has been identified as a member of
+ *   this gid within this realm can delete this node.
+ * - priority: If multiple modules seek to set permissions on a node, the realms
+ *   that have the highest priority will win out, and realms with a lower
+ *   priority will not be written. If there is any doubt, it is best to leave
+ *   this 0.
  *
  * When an implementation is interested in a node but want to deny access to
  * everyone, it may return a "deny all" grant:
@@ -256,14 +255,14 @@ function hook_node_grants($account, $op) {
  *
  * Note: a deny all grant is not written to the database; denies are implicit.
  *
- * @see _node_access_write_grants()
- *
- * @param $node
- *   The node that has just been saved.
+ * @param object $node
+ *   The node object that has just been saved.
  *
- * @return
+ * @return array
  *   An array of grants as defined above.
  *
+ * @see _node_access_write_grants()
+ *
  * @ingroup node_access
  */
 function hook_node_access_records($node) {
@@ -412,10 +411,10 @@ function hook_node_grants_alter(&$grants, $account, $op) {
  * @return
  *   An array of operations. Each operation is an associative array that may
  *   contain the following key-value pairs:
- *   - 'label': Required. The label for the operation, displayed in the dropdown
+ *   - label: (required) The label for the operation, displayed in the dropdown
  *     menu.
- *   - 'callback': Required. The function to call for the operation.
- *   - 'callback arguments': Optional. An array of additional arguments to pass
+ *   - callback: (required) The function to call for the operation.
+ *   - callback arguments: (optional) An array of additional arguments to pass
  *     to the callback function.
  */
 function hook_node_operations() {
diff --git a/modules/node/node.module b/modules/node/node.module
index 0c3cfb7..803add2 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1352,6 +1352,9 @@ function node_build_content($node, $view_mode = 'full', $langcode = NULL) {
     $node = node_invoke($node, 'view', $view_mode, $langcode);
   }
 
+  // Make the view mode available in the node object.
+  $node->view_mode = $view_mode;
+
   // Build fields content.
   // In case of a multiple view, node_view_multiple() already ran the
   // 'prepare_view' step. An internal flag prevents the operation from running
@@ -1424,6 +1427,20 @@ function node_is_page($node) {
 }
 
 /**
+ * Process variables for page.tpl.php
+ *
+ * @see page.tpl.php
+ */
+function node_preprocess_page(&$variables) {
+  // In order to have properly sectioned HTML5 markup for nodes, the title is
+  // always printed inside node.tpl.php. This code prevents it from printing in
+  // page.tpl.php as well.
+  if (!empty($variables['node']->view_mode) && $variables['node']->view_mode == 'full' && node_is_page($variables['node'])) {
+    $variables['title'] = '';
+  }
+}
+
+/**
  * Process variables for node.tpl.php
  *
  * Most themes utilize their own copy of node.tpl.php. The default is located
@@ -3742,11 +3759,11 @@ function node_save_action($node) {
 /**
  * Assigns ownership of a node to a user.
  *
- * @param $node
+ * @param object $node
  *   A node object to modify.
- * @param $context
+ * @param array $context
  *   Array with the following elements:
- *   - 'owner_uid': User ID to assign to the node.
+ *   - owner_uid: User ID to assign to the node.
  *
  * @ingroup actions
  */
@@ -3838,11 +3855,11 @@ function node_unpublish_by_keyword_action_submit($form, $form_state) {
 /**
  * Unpublishes a node containing certain keywords.
  *
- * @param $node
+ * @param object $node
  *   A node object to modify.
- * @param $context
+ * @param array $context
  *   Array with the following elements:
- *   - 'keywords': Array of keywords. If any keyword is present in the rendered
+ *   - keywords: An array of keywords. If any keyword is present in the rendered
  *     node, the node's status flag is set to unpublished.
  *
  * @ingroup actions
diff --git a/modules/node/node.tpl.php b/modules/node/node.tpl.php
index 06dc199..678e0a4 100644
--- a/modules/node/node.tpl.php
+++ b/modules/node/node.tpl.php
@@ -77,34 +77,36 @@
  * @see template_preprocess_node()
  * @see template_process()
  */
-?>
-<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
 
-  <?php print $user_picture; ?>
+// Hide the comments and links so they can be rendered apart from $content
+// afterwards.
+hide($content['comments']);
+hide($content['links']);
+?>
+<article id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?>"<?php print $attributes; ?>>
 
   <?php print render($title_prefix); ?>
-  <?php if (!$page): ?>
-    <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
+  <?php if ($display_submitted || $user_picture || $title): ?>
+    <header>
+      <?php print $user_picture; ?>
+      <?php if ($page): ?>
+        <h1<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h1>
+      <?php else: ?>
+        <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
+      <?php endif; ?>
+      <p class="submitted"><?php print $submitted; ?></p>
+    </header>
   <?php endif; ?>
   <?php print render($title_suffix); ?>
 
-  <?php if ($display_submitted): ?>
-    <div class="submitted">
-      <?php print $submitted; ?>
-    </div>
-  <?php endif; ?>
-
   <div class="content"<?php print $content_attributes; ?>>
-    <?php
-      // We hide the comments and links now so that we can render them later.
-      hide($content['comments']);
-      hide($content['links']);
-      print render($content);
-    ?>
+    <?php print render($content); ?>
   </div>
 
-  <?php print render($content['links']); ?>
+  <?php if ($links = render($content['links'])): ?>
+    <nav><?php print $links; ?></nav>
+  <?php endif; ?>
 
   <?php print render($content['comments']); ?>
 
-</div>
+</article>
diff --git a/modules/openid/openid.api.php b/modules/openid/openid.api.php
index 5e3d15d..d4ab20c 100644
--- a/modules/openid/openid.api.php
+++ b/modules/openid/openid.api.php
@@ -49,18 +49,18 @@ function hook_openid_response($response, $account) {
  * Allow modules to declare OpenID discovery methods.
  *
  * The discovery function callbacks will be called in turn with an unique
- * parameter, the claimed identifier. They have to return an associative array
- * with array of services and claimed identifier in the same form as returned by
+ * parameter, the claimed identifier. They must return an associative array with
+ * an array of services and claimed identifier in the same form as returned by
  * openid_discover(). The resulting array must contain following keys:
- *   - 'services' (required) an array of discovered services (including OpenID
- *   version, endpoint URI, etc).
- *   - 'claimed_id' (optional) new claimed identifer, found by following HTTP
- *   redirects during the services discovery.
+ *   - services: (required) an array of discovered services (including OpenID
+ *     version, endpoint URI, etc).
+ *   - claimed_id: (optional) The newly claimed identifer, found by following
+ *     HTTP redirects during the services discovery process.
  *
- * The first discovery method that succeed (return at least one services) will
+ * The first discovery method that succeeds (returna at least one services) will
  * stop the discovery process.
  *
- * @return
+ * @return array
  *   An associative array which keys are the name of the discovery methods and
  *   values are function callbacks.
  *
diff --git a/modules/openid/openid.module b/modules/openid/openid.module
index 2bf891a..91e7479 100644
--- a/modules/openid/openid.module
+++ b/modules/openid/openid.module
@@ -111,7 +111,7 @@ function openid_user_login(&$edit, $account) {
 /**
  * Implements hook_user_logout().
  *
- * Delete any openid_identifier in visitor cookie.
+ * Deletes any openid_identifier in visitor cookie.
  */
 function openid_user_logout($account) {
   if (isset($_COOKIE['Drupal_visitor_openid_identifier'])) {
@@ -244,14 +244,23 @@ function openid_login_validate($form, &$form_state) {
 }
 
 /**
- * The initial step of OpenID authentication responsible for the following:
- *  - Perform discovery on the claimed OpenID.
- *  - If possible, create an association with the Provider's endpoint.
- *  - Create the authentication request.
- *  - Perform the appropriate redirect.
- *
- * @param $claimed_id The OpenID to authenticate
- * @param $return_to The endpoint to return to from the OpenID Provider
+ * Performs initial step of OpenID authentication process.
+ *
+ * This function performs the following tasks:
+ *   - Performs discovery on the claimed OpenID.
+ *   - If possible, creates an association with the Provider's endpoint.
+ *   - Creates the authentication request.
+ *   - Performs the appropriate redirect.
+ *
+ * @param string $claimed_id
+ *   The OpenID to authenticate.
+ * @param $return_to
+ *   The endpoint to return to from the OpenID Provider.
+ * @param array $form_values
+ *   The values from a form.
+ *
+ * @todo: The $return_to variable is part of this function's signature, but is
+ *   not referenced.  Should the function profile be changed as a result?
  */
 function openid_begin($claimed_id, $return_to = '', $form_values = array()) {
   module_load_include('inc', 'openid');
@@ -315,10 +324,12 @@ function openid_begin($claimed_id, $return_to = '', $form_values = array()) {
  * Completes OpenID authentication by validating returned data from the OpenID
  * Provider.
  *
- * @param $response Array of returned values from the OpenID Provider.
+ * @param array $response
+ *   Array of returned values from the OpenID Provider.
  *
- * @return $response Response values for further processing with
- *   $response['status'] set to one of 'success', 'failed' or 'cancel'.
+ * @return array $response
+ *   Response values for further processing with $response['status'] set to one
+ *   of 'success', 'failed' or 'cancel'.
  */
 function openid_complete($response = array()) {
   module_load_include('inc', 'openid');
@@ -392,16 +403,16 @@ function openid_complete($response = array()) {
  * Discovery methods are provided by the hook_openid_discovery_method_info and
  * could be further altered using the hook_openid_discovery_method_info_alter.
  *
- * @param $claimed_id
+ * @param string $claimed_id
  *   The OpenID URL to perform discovery on.
  *
- * @return
+ * @return array|false
  *   The resulting discovery array from the first successful discovery method,
  *   which must contain following keys:
- *   - 'services' (required) an array of discovered services (including OpenID
- *   version, endpoint URI, etc).
- *   - 'claimed_id' (optional) new claimed identifer, found by following HTTP
- *   redirects during the services discovery.
+ *   - services: (required) An array of discovered services (including OpenID
+ *     version, endpoint URI, etc).
+ *   - claimed_id: (optional)  The newly claimed identifer, found by following
+ *     HTTP redirects during the services discovery.
  *   If all the discovery method fails or if no appropriate discovery method is
  *   found, FALSE is returned.
  */
@@ -418,7 +429,6 @@ function openid_discovery($claimed_id) {
       return $discovery;
     }
   }
-
   return FALSE;
 }
 
@@ -426,6 +436,11 @@ function openid_discovery($claimed_id) {
  * Implementation of hook_openid_discovery_method_info().
  *
  * Define standard discovery methods.
+ *
+ * @return array
+ *   An associative array with the following keys:
+ *   - xri: The result from function '_openid_xri_discovery'.
+ *   - xrds: The result from function '_openid_xrds_discovery'.
  */
 function openid_openid_discovery_method_info() {
   // The discovery process will stop as soon as one discovery method succeed.
@@ -445,7 +460,7 @@ function openid_openid_discovery_method_info() {
  * @see hook_openid_discovery_method_info()
  * @see openid_discovery()
  *
- * @return
+ * @return array
  *   An array of discovered services and claimed identifier or NULL. See
  *   openid_discovery() for more specific information.
  */
@@ -476,13 +491,13 @@ function _openid_xri_discovery($claimed_id) {
 /**
  * OpenID discovery method: perform a XRDS discovery.
  *
+ * @return array|null
+ *   An array of discovered services and claimed identifier or NULL. See
+ *   openid_discovery() for more specific information.
+ *
  * @see http://openid.net/specs/openid-authentication-2_0.html#discovery
  * @see hook_openid_discovery_method_info()
  * @see openid_discovery()
- *
- * @return
- *   An array of discovered services and claimed identifier or NULL. See
- *   openid_discovery() for more specific information.
  */
 function _openid_xrds_discovery($claimed_id) {
   $services = array();
@@ -564,6 +579,9 @@ function _openid_xrds_discovery($claimed_id) {
  * Implementation of hook_openid_normalization_method_info().
  *
  * Define standard normalization methods.
+ *
+ * @return array
+ *   An assoiative array with keys 'xri' and 'url'.
  */
 function openid_openid_normalization_method_info() {
   // OpenID Authentication 2.0, section 7.2:
@@ -578,9 +596,11 @@ function openid_openid_normalization_method_info() {
 /**
  * Attempt to create a shared secret with the OpenID Provider.
  *
- * @param $op_endpoint URL of the OpenID Provider endpoint.
+ * @param $op_endpoint
+ *   A URL of the OpenID Provider endpoint.
  *
- * @return $assoc_handle The association handle.
+ * @return $assoc_handle
+ *   The association handle.
  */
 function openid_association($op_endpoint) {
   module_load_include('inc', 'openid');
@@ -642,7 +662,8 @@ function openid_association($op_endpoint) {
 /**
  * Authenticate a user or attempt registration.
  *
- * @param $response Response values from the OpenID Provider.
+ * @param $response
+ *    Response values from the OpenID Provider.
  */
 function openid_authentication($response) {
   $identity = $response['openid.claimed_id'];
@@ -870,6 +891,7 @@ function openid_verify_assertion($service, $response) {
  *
  * @return
  *   TRUE if the signature is valid and covers all fields required to be signed.
+ *
  * @see http://openid.net/specs/openid-authentication-2_0.html#rfc.section.11.4
  */
 function openid_verify_assertion_signature($service, $association, $response) {
diff --git a/modules/overlay/overlay.module b/modules/overlay/overlay.module
index 6e137b7..6a04665 100644
--- a/modules/overlay/overlay.module
+++ b/modules/overlay/overlay.module
@@ -578,29 +578,30 @@ function overlay_get_mode() {
  * Therefore, the first call to this function which passes along a value of the
  * $mode parameter controls the overlay mode that will be used.
  *
- * @param $mode
+ * @param string $mode
  *   To set the mode, pass in one of the following values:
- *   - 'parent': This is used in the context of a parent window (a regular
- *     browser window). If set, JavaScript is added so that administrative
- *     links in the parent window will open in an overlay.
- *   - 'child': This is used in the context of the child overlay window (the
- *     page actually appearing within the overlay iframe). If set, JavaScript
- *     and CSS are added so that Drupal behaves nicely from within the overlay.
- *   - 'none': This is used to avoid adding any overlay-related code to the
- *     page at all. Modules can set this to explicitly prevent the overlay from
- *     being used. For example, since the overlay module itself sets the mode
- *     to 'parent' or 'child' in overlay_init() when certain conditions are
- *     met, other modules which want to override that behavior can do so by
- *     setting the mode to 'none' earlier in the page request - e.g., in their
- *     own hook_init() implementations, if they have a lower weight.
+ *   - parent: This is used in the context of a parent window (a regular browser
+ *     window). If set, JavaScript is added so that administrative links in the
+ *     parent window will open in an overlay.
+ *   - child: This is used in the context of the child overlay window (the page
+ *     actually appearing within the overlay iframe). If set, JavaScript and CSS
+ *     are added so that Drupal behaves nicely from within the overlay.
+ *   - none: This is used to avoid adding any overlay-related code to the page
+ *     at all. Modules can set this to explicitly prevent the overlay from being
+ *     used. For example, since the overlay module itself sets the mode to
+ *     'parent' or 'child' in overlay_init() when certain conditions are met,
+ *     other modules which want to override that behavior can do so by setting
+ *     the mode to 'none' earlier in the page request - e.g., in their own
+ *     hook_init() implementations, if they have a lower weight.
  *   This parameter is optional, and if omitted, the current mode will be
  *   returned with no action taken.
  *
- * @return
+ * @return string|null
  *   The current mode, if any has been set, or NULL if no mode has been set.
  *
- * @ingroup overlay_api
  * @see overlay_init()
+ *
+ * @ingroup overlay_api
  */
 function overlay_set_mode($mode = NULL) {
   global $base_path;
diff --git a/modules/search/search.api.php b/modules/search/search.api.php
index 3f745bf..f8907e3 100644
--- a/modules/search/search.api.php
+++ b/modules/search/search.api.php
@@ -30,13 +30,13 @@
  * hook_search_access() to limit access to searching, and hook_search_page() to
  * override how search results are displayed.
  *
- * @return
+ * @return array
  *   Array with optional keys:
- *   - 'title': Title for the tab on the search page for this module. Defaults
- *     to the module name if not given.
- *   - 'path': Path component after 'search/' for searching with this module.
+ *   - title: Title for the tab on the search page for this module. Defaults to
+ *     the module name if not given.
+ *   - path: Path component after 'search/' for searching with this module.
  *     Defaults to the module name if not given.
- *   - 'conditions_callback': Name of a callback function that is invoked by
+ *   - conditions_callback: Name of a callback function that is invoked by
  *     search_view() to get an array of additional search conditions to pass to
  *     search_data(). For example, a search module may get additional keywords,
  *     filters, or modifiers for the search from the query string. Sample
@@ -111,10 +111,10 @@ function hook_search_reset() {
  * Implementing modules do not need to check whether they are active when
  * calculating their return values.
  *
- * @return
- *  An associative array with the key-value pairs:
- *  - 'remaining': The number of items left to index.
- *  - 'total': The total number of items to index.
+ * @return array
+ *   An associative array with the key-value pairs:
+ *   - remaining: The number of items left to index.
+ *   - total: The total number of items to index.
  *
  * @ingroup search
  */
@@ -177,21 +177,21 @@ function hook_search_admin() {
  *
  * @param $keys
  *   The search keywords as entered by the user.
- * @param $conditions
+ * @param array $conditions
  *   An optional array of additional conditions, such as filters.
  *
- * @return
- *   An array of search results. To use the default search result
- *   display, each item should have the following keys':
- *   - 'link': Required. The URL of the found item.
- *   - 'type': The type of item (such as the content type).
- *   - 'title': Required. The name of the item.
- *   - 'user': The author of the item.
- *   - 'date': A timestamp when the item was last modified.
- *   - 'extra': An array of optional extra information items.
- *   - 'snippet': An excerpt or preview to show with the result (can be
- *     generated with search_excerpt()).
- *   - 'language': Language code for the item (usually two characters).
+ * @return array
+ *   An array of search results (may be empty). To use the default search result
+ *   display, each item should have the following keys:
+ *   - link: (required) The URL of the found item.
+ *   - type: The type of item (such as the content type).
+ *   - title: (required) The name of the item.
+ *   - user: The author of the item.
+ *   - date: A unix timestamp about when the item was last modified.
+ *   - extra: An array of optional extra information items.
+ *   - snippet: An excerpt or preview to show with the result (can be generated
+ *     with search_excerpt()).
+ *   - language: Language code for the item (usually two characters).
  *
  * @ingroup search
  */
diff --git a/modules/shortcut/shortcut.module b/modules/shortcut/shortcut.module
index f8ddcc2..b7caa74 100644
--- a/modules/shortcut/shortcut.module
+++ b/modules/shortcut/shortcut.module
@@ -302,15 +302,15 @@ function shortcut_link_access($menu_link) {
 /**
  * Loads the data for a shortcut set.
  *
- * @param $set_name
+ * @param string $set_name
  *   The name of the shortcut set to load.
  *
- * @return object
- *   If the shortcut set exists, an object containing the following properties:
- *   - 'set_name': The internal name of the shortcut set.
- *   - 'title': The title of the shortcut set.
- *   - 'links': An array of links associated with this shortcut set.
- *   If the shortcut set does not exist, the function returns FALSE.
+ * @return object|false
+ *   If the shortcut set does not exist, the function returns FALSE; otherwise,
+ *   it returns an object containing the following properties:
+ *   - set_name: The internal name of the shortcut set.
+ *   - title: The title of the shortcut set.
+ *   - links: An array of links associated with this shortcut set.
  */
 function shortcut_set_load($set_name) {
   $set = db_select('shortcut_set', 'ss')
@@ -330,19 +330,19 @@ function shortcut_set_load($set_name) {
  *
  * @param $shortcut_set
  *   An object containing the following properties:
- *   - 'title': The title of the shortcut set.
- *   - 'set_name': (optional) The internal name of the shortcut set. If
- *     omitted, a new shortcut set will be created, and the 'set_name' property
- *     will be added to the passed-in object.
- *   - 'links': (optional) An array of menu links to save for the shortcut set.
- *     Each link is an array containing at least the following keys (which will
+ *   - title: The title of the shortcut set.
+ *   - set_name: (optional) The internal name of the shortcut set. If omitted, a
+ *     new shortcut set will be created, and the 'set_name' property will be
+ *     added to the passed-in object.
+ *   - links: (optional) An array of menu links to save for the shortcut set.
+ *     Each link is an array containing at least the following keys, which will
  *     be expanded to fill in other default values after the shortcut set is
- *     saved):
- *     - 'link_path': The Drupal path or external path that the link points to.
- *     - 'link_title': The title of the link.
+ *     saved:
+ *     - link_path: The Drupal path or external path that the link points to.
+ *     - link_title: The title of the link.
  *     Any other keys accepted by menu_link_save() may also be provided.
  *
- * @return
+ * @return int
  *   A constant which is either SAVED_NEW or SAVED_UPDATED depending on whether
  *   a new set was created or an existing one was updated.
  *
diff --git a/modules/shortcut/shortcut.test b/modules/shortcut/shortcut.test
index 322c63f..18f39f9 100644
--- a/modules/shortcut/shortcut.test
+++ b/modules/shortcut/shortcut.test
@@ -75,14 +75,14 @@ class ShortcutTestCase extends DrupalWebTestCase {
 
   /**
    * Extracts information from shortcut set links.
-   * 
+   *
    * @param object $set
    *   The shortcut set object to extract information from.
    * @param string $key
    *   The array key indicating what information to extract from each link:
-   *    - 'link_path': Extract link paths.
-   *    - 'link_title': Extract link titles.
-   *    - 'mlid': Extract the menu link item ID numbers.
+   *   - link_path: Extract the link paths.
+   *   - link_title: Extract the link titles.
+   *   - mlid: Extract the menu link item ID numbers.
    *
    * @return array
    *   Array of the requested information from each link.
@@ -316,7 +316,7 @@ class ShortcutSetsTestCase extends ShortcutTestCase {
    */
   function testShortcutSetRename() {
     $set = $this->set;
-    
+
     $new_title = $this->randomName(10);
     $this->drupalPost('admin/config/user-interface/shortcut/' . $set->set_name . '/edit', array('title' => $new_title), t('Save'));
     $set = shortcut_set_load($set->set_name);
diff --git a/modules/simpletest/drupal_web_test_case.php b/modules/simpletest/drupal_web_test_case.php
index 81264d1..fd028d7 100644
--- a/modules/simpletest/drupal_web_test_case.php
+++ b/modules/simpletest/drupal_web_test_case.php
@@ -4,9 +4,9 @@
  * Global variable that holds information about the tests being run.
  *
  * An array, with the following keys:
- *  - 'test_run_id': the ID of the test being run, in the form 'simpletest_%"
- *  - 'in_child_site': TRUE if the current request is a cURL request from
- *     the parent site.
+ *  - test_run_id: The ID of the test being run, in the form 'simpletest_%".
+ *  - in_child_site: (bool) TRUE if the current request is a cURL request from
+ *    the parent site.
  *
  * @var array
  */
diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test
index 5154e0c..380a868 100644
--- a/modules/simpletest/tests/common.test
+++ b/modules/simpletest/tests/common.test
@@ -2412,9 +2412,9 @@ class DrupalAddFeedTestCase extends DrupalWebTestCase {
     $fully_qualified_for_title = url($this->randomName(12), array('absolute' => TRUE));
 
     // Possible permutations of drupal_add_feed() to test.
-    // - 'input_url': the path passed to drupal_add_feed(),
-    // - 'output_url': the expected URL to be found in the header.
-    // - 'title' == the title of the feed as passed into drupal_add_feed().
+    // - input_url: The path passed to drupal_add_feed().
+    // - output_url: The expected URL to be found in the header.
+    // - title': The title of the feed as passed into drupal_add_feed().
     $urls = array(
       'path without title' => array(
         'input_url' => $path,
diff --git a/modules/statistics/statistics.module b/modules/statistics/statistics.module
index 2cbe94b..ea853a0 100644
--- a/modules/statistics/statistics.module
+++ b/modules/statistics/statistics.module
@@ -251,16 +251,15 @@ function statistics_cron() {
 /**
  * Returns all time or today top or last viewed node(s).
  *
- * @param $dbfield
- *   one of
- *   - 'totalcount': top viewed content of all time.
- *   - 'daycount': top viewed content for today.
- *   - 'timestamp': last viewed node.
+ * @param string $dbfield
+ *   A string with one of the following values:
+ *   - totalcount: The top viewed content of all time.
+ *   - daycount: The top viewed content for teh current day.
+ *   - timestamp: The most recenly viewed node.
+ * @param int $dbrows
+ *   Number of rows to be returned.
  *
- * @param $dbrows
- *   number of rows to be returned.
- *
- * @return
+ * @return object|false
  *   A query result containing n.nid, n.title, u.uid, u.name of the selected node(s)
  *   or FALSE if the query could not be executed correctly.
  */
diff --git a/modules/system/system.api.php b/modules/system/system.api.php
index cc67924..5705b2d 100644
--- a/modules/system/system.api.php
+++ b/modules/system/system.api.php
@@ -157,11 +157,11 @@ function hook_cron() {
  * @return
  *   An associative array where the key is the queue name and the value is
  *   again an associative array. Possible keys are:
- *   - 'worker callback': The name of the function to call. It will be called
- *     with one argument, the item created via DrupalQueue::createItem() in
+ *   - worker callback: The name of the function to call. It will be called with
+ *     one argument, the item created via DrupalQueue::createItem() in
  *     hook_cron().
- *   - 'time': (optional) How much time Drupal should spend on calling this
- *     worker in seconds. Defaults to 15.
+ *   - time: (optional) How much time Drupal should spend on calling this worker
+ *     in seconds. Defaults to 15 seconds.
  *
  * @see hook_cron()
  * @see hook_cron_queue_info_alter()
@@ -302,19 +302,19 @@ function hook_js_alter(&$javascript) {
  * sub-array is the machine readable name of the library. Each library may
  * contain the following items:
  *
- * - 'title': The human readable name of the library.
- * - 'website': The URL of the library's web site.
- * - 'version': A string specifying the version of the library; intentionally
- *   not a float because a version like "1.2.3" is not a valid float. Use PHP's
+ * - title: The human readable name of the library.
+ * - website: The URL of the library's web site.
+ * - version: A string specifying the version of the library; intentionally not
+ *   a float because a version like "1.2.3" is not a valid float. Use PHP's
  *   version_compare() to compare different versions.
- * - 'js': An array of JavaScript elements; each element's key is used as $data
+ * - js: An array of JavaScript elements; each element's key is used as $data
  *   argument, each element's value is used as $options array for
  *   drupal_add_js(). To add library-specific (not module-specific) JavaScript
- *   settings, the key may be skipped, the value must specify
- *   'type' => 'setting', and the actual settings must be contained in a 'data'
- *   element of the value.
- * - 'css': Like 'js', an array of CSS elements passed to drupal_add_css().
- * - 'dependencies': An array of libraries that are required for a library. Each
+ *   settings, the key may be skipped, the value must specify 'type' =>
+ *   'setting', and the actual settings must be contained in a 'data' element of
+ *   the value.
+ * - css: Like 'js', an array of CSS elements passed to drupal_add_css().
+ * - dependencies: An array of libraries that are required for a library. Each
  *   element is an array listing the module and name of another library. Note
  *   that all dependencies for each dependent library will also be added when
  *   this library is added.
@@ -323,7 +323,7 @@ function hook_js_alter(&$javascript) {
  * Module- or implementation-specific data and integration logic should be added
  * separately.
  *
- * @return
+ * @return array
  *   An array defining libraries associated with a module.
  *
  * @see system_library_info()
@@ -1382,19 +1382,19 @@ function hook_init() {
  *
  * The toolkit's functions must be named image_toolkitname_operation().
  * where the operation may be:
- *   - 'load': Required. See image_gd_load() for usage.
- *   - 'save': Required. See image_gd_save() for usage.
- *   - 'settings': Optional. See image_gd_settings() for usage.
- *   - 'resize': Optional. See image_gd_resize() for usage.
- *   - 'rotate': Optional. See image_gd_rotate() for usage.
- *   - 'crop': Optional. See image_gd_crop() for usage.
- *   - 'desaturate': Optional. See image_gd_desaturate() for usage.
+ *   - load: (required) See image_gd_load() for usage.
+ *   - save: (required) See image_gd_save() for usage.
+ *   - settings: (optional) See image_gd_settings() for usage.
+ *   - resize: (optional) See image_gd_resize() for usage.
+ *   - rotate: (optional) See image_gd_rotate() for usage.
+ *   - crop: (optional) See image_gd_crop() for usage.
+ *   - desaturate: (optional) See image_gd_desaturate() for usage.
  *
- * @return
+ * @return array
  *   An array with the toolkit name as keys and sub-arrays with these keys:
- *     - 'title': A string with the toolkit's title.
- *     - 'available': A Boolean value to indicate that the toolkit is operating
- *       properly, e.g. all required libraries exist.
+ *   - title: A string with the toolkit's title.
+ *   - available: (boolean) Indicates whether the toolkit is operating properly,
+ *     e.g. all required libraries exist.
  *
  * @see system_image_toolkits()
  */
@@ -1424,33 +1424,26 @@ function hook_image_toolkits() {
  * will not invoke this hook. All core modules use drupal_mail() for
  * messaging, it is best practice but not mandatory in contributed modules.
  *
- * @param $message
+ * @param array $message
  *   An array containing the message data. Keys in this array include:
- *  - 'id':
- *     The drupal_mail() id of the message. Look at module source code or
+ *   - id: The drupal_mail() id of the message. Look at module source code or
  *     drupal_mail() for possible id values.
- *  - 'to':
- *     The address or addresses the message will be sent to. The
- *     formatting of this string must comply with RFC 2822.
- *  - 'from':
- *     The address the message will be marked as being from, which is
+ *   - to: The address or addresses the message will be sent to. The formatting
+ *     of this string must comply with RFC 2822.
+ *   - from: The address the message will be marked as being from, which is
  *     either a custom address or the site-wide default email address.
- *  - 'subject':
- *     Subject of the email to be sent. This must not contain any newline
- *     characters, or the email may not be sent properly.
- *  - 'body':
- *     An array of strings containing the message text. The message body is
- *     created by concatenating the individual array strings into a single text
- *     string using "\n\n" as a separator.
- *  - 'headers':
- *     Associative array containing mail headers, such as From, Sender,
- *     MIME-Version, Content-Type, etc.
- *  - 'params':
- *     An array of optional parameters supplied by the caller of drupal_mail()
- *     that is used to build the message before hook_mail_alter() is invoked.
- *  - 'language':
- *     The language object used to build the message before hook_mail_alter()
+ *   - subject: Subject of the email to be sent. This must not contain any
+ *     newline characters, or the email may not be sent properly.
+ *   - body: An array of strings containing the message text. The message body
+ *     is created by concatenating the individual array strings into a single
+ *     text string using "\n\n" as a separator.
+ *   - headers: An associative array containing mail headers, such as From,
+ *     Sender, MIME-Version, Content-Type, etc.
+ *   - params: An array of optional parameters supplied by the caller of
+ *     drupal_mail() that is used to build the message before hook_mail_alter()
  *     is invoked.
+ *   - language: The language object used to build the message before
+ *     hook_mail_alter() is invoked.
  *
  * @see drupal_mail()
  */
@@ -1574,20 +1567,20 @@ function hook_permission() {
  *   purposes. This is primarily useful for themes that may wish to examine
  *   existing implementations to extract data (such as arguments) so that
  *   it may properly register its own, higher priority implementations.
- * @param $type
+ * @param string $type
  *   Whether a theme, module, etc. is being processed. This is primarily useful
  *   so that themes tell if they are the actual theme being called or a parent
  *   theme. May be one of:
- *   - 'module': A module is being checked for theme implementations.
- *   - 'base_theme_engine': A theme engine is being checked for a theme that is
- *     a parent of the actual theme being used.
- *   - 'theme_engine': A theme engine is being checked for the actual theme
- *     being used.
- *   - 'base_theme': A base theme is being checked for theme implementations.
- *   - 'theme': The actual theme in use is being checked.
- * @param $theme
+ *   - module: A module is being checked for theme implementations.
+ *   - base_theme_engine: A theme engine is being checked for a theme that is a
+ *     parent of the actual theme being used.
+ *   - theme_engine: A theme engine is being checked for the actual theme being
+ *     used.
+ *   - base_theme: A base theme is being checked for theme implementations.
+ *   - theme: The actual theme in use is being checked.
+ * @param string $theme
  *   The actual name of theme, module, etc. that is being being processed.
- * @param $path
+ * @param string $path
  *   The directory path of the theme or module, so that it doesn't need to be
  *   looked up.
  *
@@ -2122,11 +2115,11 @@ function hook_modules_uninstalled($modules) {
  * @return
  *   A nested array, keyed first by scheme name ("public" for "public://"),
  *   then keyed by the following values:
- *   - 'name' A short string to name the wrapper.
- *   - 'class' A string specifying the PHP class that implements the
+ *   - name: A short string to name the wrapper.
+ *   - class: A string specifying the PHP class that implements the
  *     DrupalStreamWrapperInterface interface.
- *   - 'description' A string with a short description of what the wrapper does.
- *   - 'type' (Optional) A bitmask of flags indicating what type of streams this
+ *   - description: A string with a short description of what the wrapper does.
+ *   - type: (optional) A bitmask of flags indicating what type of streams this
  *     wrapper will access - local or remote, readable and/or writeable, etc.
  *     Many shortcut constants are defined in stream_wrappers.inc. Defaults to
  *     STREAM_WRAPPERS_NORMAL which includes all of these bit flags:
@@ -3083,41 +3076,37 @@ function hook_registry_files_alter(&$files, $modules) {
  * variable_del() before your last task has completed and control is handed
  * back to the installer.
  *
- * @return
+ * @return array
  *   A keyed array of tasks the profile will perform during the final stage of
  *   the installation. Each key represents the name of a function (usually a
  *   function defined by this profile, although that is not strictly required)
  *   that is called when that task is run. The values are associative arrays
  *   containing the following key-value pairs (all of which are optional):
- *     - 'display_name'
- *       The human-readable name of the task. This will be displayed to the
- *       user while the installer is running, along with a list of other tasks
- *       that are being run. Leave this unset to prevent the task from
- *       appearing in the list.
- *     - 'display'
- *       This is a boolean which can be used to provide finer-grained control
- *       over whether or not the task will display. This is mostly useful for
- *       tasks that are intended to display only under certain conditions; for
- *       these tasks, you can set 'display_name' to the name that you want to
- *       display, but then use this boolean to hide the task only when certain
- *       conditions apply.
- *     - 'type'
- *       A string representing the type of task. This parameter has three
+ *     - display_name: The human-readable name of the task. This will be
+ *       displayed to the user while the installer is running, along with a list
+ *       of other tasks that are being run. Leave this unset to prevent the task
+ *       from appearing in the list.
+ *     - display: This is a boolean which can be used to provide finer-grained
+ *       control over whether or not the task will display. This is mostly
+ *       useful for tasks that are intended to display only under certain
+ *       conditions; for these tasks, you can set 'display_name' to the name
+ *       that you want to display, but then use this boolean to hide the task
+ *       only when certain conditions apply.
+ *     - type: A string representing the type of task. This parameter has three
  *       possible values:
- *       - 'normal': This indicates that the task will be treated as a regular
+ *       - normal: This indicates that the task will be treated as a regular
  *       callback function, which does its processing and optionally returns
  *       HTML output. This is the default behavior which is used when 'type' is
  *       not set.
- *       - 'batch': This indicates that the task function will return a batch
- *       API definition suitable for batch_set(). The installer will then take
- *       care of automatically running the task via batch processing.
- *       - 'form': This indicates that the task function will return a standard
+ *       - batch: This indicates that the task function will return a batch API
+ *       definition suitable for batch_set(). The installer will then take care
+ *       of automatically running the task via batch processing.
+ *       - form: This indicates that the task function will return a standard
  *       form API definition (and separately define validation and submit
  *       handlers, as appropriate). The installer will then take care of
  *       automatically directing the user through the form submission process.
- *     - 'run'
- *       A constant representing the manner in which the task will be run. This
- *       parameter has three possible values:
+ *     - run: A constant representing the manner in which the task will be run.
+ *       This parameter has three possible values:
  *       - INSTALL_TASK_RUN_IF_NOT_COMPLETED: This indicates that the task will
  *       run once during the installation of the profile. This is the default
  *       behavior which is used when 'run' is not set.
@@ -3130,12 +3119,11 @@ function hook_registry_files_alter(&$files, $modules) {
  *       on each installation page request that reaches it. This is rarely
  *       necessary for an installation profile to use; it is primarily used by
  *       the Drupal installer for bootstrap-related tasks.
- *     - 'function'
- *       Normally this does not need to be set, but it can be used to force the
- *       installer to call a different function when the task is run (rather
- *       than the function whose name is given by the array key). This could be
- *       used, for example, to allow the same function to be called by two
- *       different tasks.
+ *     - function: Normally this does not need to be set, but it can be used to
+ *       force the installer to call a different function when the task is run
+ *       (rather than the function whose name is given by the array key). This
+ *       could be used, for example, to allow the same function to be called by
+ *       two different tasks.
  *
  * @see install_state_defaults()
  * @see batch_set()
@@ -3296,27 +3284,27 @@ function hook_file_mimetype_mapping_alter(&$mapping) {
  * The action function takes two to four arguments, which come from the input
  * arguments to actions_do().
  *
- * @return
- *   An associative array of action descriptions. The keys of the array
- *   are the names of the action functions, and each corresponding value
- *   is an associative array with the following key-value pairs:
- *   - 'type': The type of object this action acts upon. Core actions have types
+ * @return array
+ *   An associative array of action descriptions. The keys of the array are the
+ *   names of the action functions, and each corresponding value is an
+ *   associative array with the following key/value pairs:
+ *   - type: The type of object this action acts upon. Core actions have types
  *     'node', 'user', 'comment', and 'system'.
- *   - 'label': The human-readable name of the action, which should be passed
+ *   - label: The human-readable name of the action, which should be passed
  *     through the t() function for translation.
- *   - 'configurable': If FALSE, then the action doesn't require any extra
+ *   - configurable: If FALSE, then the action doesn't require any extra
  *     configuration. If TRUE, then your module must define a form function with
  *     the same name as the action function with '_form' appended (e.g., the
  *     form for 'node_assign_owner_action' is 'node_assign_owner_action_form'.)
  *     This function takes $context as its only parameter, and is paired with
  *     the usual _submit function, and possibly a _validate function.
- *   - 'triggers': An array of the events (that is, hooks) that can trigger this
+ *   - triggers: An array of the events (that is, hooks) that can trigger this
  *     action. For example: array('node_insert', 'user_update'). You can also
  *     declare support for any trigger by returning array('any') for this value.
- *   - 'behavior': (optional) A machine-readable array of behaviors of this
+ *   - behavior: (optional) A machine-readable array of behaviors of this
  *     action, used to signal additionally required actions that may need to be
  *     triggered. Currently recognized behaviors by Trigger module:
- *     - 'changes_property': If an action with this behavior is assigned to a
+ *     - changes_property: If an action with this behavior is assigned to a
  *       trigger other than a "presave" hook, any save actions also assigned to
  *       this trigger are moved later in the list. If no save action is present,
  *       one will be added.
@@ -3505,20 +3493,20 @@ function hook_date_format_types_alter(&$types) {
  * where $type is the machine-readable name defined in hook_date_format_types(),
  * and $format is a PHP date format string.
  *
- * @return
+ * @return array
  *   A list of date formats to offer as choices in the administrative
  *   interface. Each date format is a keyed array consisting of three elements:
- *   - 'type': The date type name that this format can be used with, as
- *     declared in an implementation of hook_date_format_types().
- *   - 'format': A PHP date format string to use when formatting dates. It
- *     can contain any of the formatting options described at
+ *   - type: The date type name that this format can be used with, as declared
+ *     in an implementation of hook_date_format_types().
+ *   - format: A PHP date format string to use when formatting dates. It can
+ *     contain any of the formatting options described at
  *     http://php.net/manual/en/function.date.php
- *   - 'locales': (optional) An array of 2 and 5 character locale codes,
- *     defining which locales this format applies to (for example, 'en',
- *     'en-us', etc.). If your date format is not language-specific, leave this
- *     array empty.
+ *   - locales: (optional) An array of 2 and 5 character locale codes, defining
+ *     which locales this format applies to (for example, 'en', 'en-us', etc.).
+ *     If your date format is not language-specific, leave this array empty.
  *
  * @see hook_date_format_types()
+ * @see http://php.net/manual/en/function.date.php
  */
 function hook_date_formats() {
   return array(
@@ -3789,16 +3777,16 @@ function hook_tokens($type, $tokens, array $data = array(), array $options = arr
 /**
  * Alter replacement values for placeholder tokens.
  *
- * @param $replacements
+ * @param array $replacements
  *   An associative array of replacements returned by hook_tokens().
- * @param $context
+ * @param array $context
  *   The context in which hook_tokens() was called. An associative array with
  *   the following keys, which have the same meaning as the corresponding
  *   parameters of hook_tokens():
- *   - 'type'
- *   - 'tokens'
- *   - 'data'
- *   - 'options'
+ *   - type
+ *   - tokens
+ *   - data
+ *   - options
  *
  * @see hook_tokens()
  */
@@ -4078,19 +4066,19 @@ function hook_menu_site_status_alter(&$menu_site_status, $path) {
  *   FileTransfer type (not human readable, used for form elements and
  *   variable names, etc), and the values are subarrays that define properties
  *   of that type. The keys in each subarray are:
- *   - 'title': Required. The human-readable name of the connection type.
- *   - 'class': Required. The name of the FileTransfer class. The constructor
+ *   - title: (required) The human-readable name of the connection type.
+ *   - class: (required) The name of the FileTransfer class. The constructor
  *     will always be passed the full path to the root of the site that should
  *     be used to restrict where file transfer operations can occur (the $jail)
  *     and an array of settings values returned by the settings form.
- *   - 'file': Required. The include file containing the FileTransfer class.
- *     This should be a separate .inc file, not just the .module file, so that
- *     the minimum possible code is loaded when authorize.php is running.
- *   - 'file path': Optional. The directory (relative to the Drupal root)
- *     where the include file lives. If not defined, defaults to the base
- *     directory of the module implementing the hook.
- *   - 'weight': Optional. Integer weight used for sorting connection types on
- *     the authorize.php form.
+ *   - file: (required) The include file containing the FileTransfer class. This
+ *     should be a separate .inc file, not just the .module file, so that the
+ *     minimum possible code is loaded when authorize.php is running.
+ *   - file path: (optional) The directory (relative to the Drupal root) where
+ *     the include file lives. If not defined, defaults to the base directory of
+ *     the module implementing the hook.
+ *   - weight: Optional. Integer weight used for sorting connection types on the
+ *     authorize.php form.
  *
  * @see FileTransfer
  * @see authorize.php
diff --git a/modules/system/system.module b/modules/system/system.module
index 0ef688e..d729be0 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -3156,11 +3156,11 @@ function system_send_email_action_submit($form, $form_state) {
  *   provided.
  * @param array $context
  *   Array with the following elements:
- *   - 'recipient': E-mail message recipient. This will be passed through
+ *   - recipient: E-mail message recipient. This will be passed through
  *     token_replace().
- *   - 'subject': The subject of the message. This will be passed through
+ *   - subject: The subject of the message. This will be passed through
  *     token_replace().
- *   - 'message': The message to send. This will be passed through
+ *   - message: The message to send. This will be passed through
  *     token_replace().
  *   - Other elements will be used as the data for token replacement.
  *
@@ -3230,7 +3230,7 @@ function system_message_action_submit($form, $form_state) {
  *   provided.
  * @param array $context
  *   Array with the following elements:
- *   - 'message': The message to send. This will be passed through
+ *   - message: The message to send. This will be passed through
  *     token_replace().
  *   - Other elements will be used as the data for token replacement in
  *     the message.
@@ -3269,12 +3269,11 @@ function system_goto_action_submit($form, $form_state) {
 /**
  * Redirects to a different URL.
  *
- * @param $entity
- *   Ignored.
+ * @param object $entity
+ *   Ignored in all contexts.
  * @param array $context
  *   Array with the following elements:
- *   - 'url': URL to redirect to. This will be passed through
- *     token_replace().
+ *   - url: URL to redirect to. This will be passed through token_replace().
  *   - Other elements will be used as the data for token replacement.
  *
  * @ingroup actions
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index eb20c26..8293eeb 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -1333,7 +1333,7 @@ function taxonomy_options_list($field, $instance) {
  * Confirm that terms entered as values meet at least one of these conditions.
  *
  * Possible error codes:
- * - 'taxonomy_term_illegal_value': The value is not part of the list of allowed values.
+ * - taxonomy_term_illegal_value: The value is not part of the list of allowed values.
  */
 function taxonomy_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
   // Build an array of existing term IDs so they can be loaded with
diff --git a/modules/translation/translation.module b/modules/translation/translation.module
index 7d47a6d..116098b 100644
--- a/modules/translation/translation.module
+++ b/modules/translation/translation.module
@@ -2,21 +2,21 @@
 
 /**
  * @file
- *   Manages content translations.
+ * Manages content translations.
  *
- *   Translations are managed in sets of posts, which represent the same
- *   information in different languages. Only content types for which the
- *   administrator explicitly enabled translations could have translations
- *   associated. Translations are managed in sets with exactly one source
- *   post per set. The source post is used to translate to different
- *   languages, so if the source post is significantly updated, the
- *   editor can decide to mark all translations outdated.
+ * Translations are managed in sets of posts, which represent the same
+ * information in different languages. Only content types for which the
+ * administrator explicitly enabled translations could have translations
+ * associated. Translations are managed in sets with exactly one source
+ * post per set. The source post is used to translate to different
+ * languages, so if the source post is significantly updated, the
+ * editor can decide to mark all translations outdated.
  *
- *   The node table stores the values used by this module:
- *    - 'tnid' is the translation set id, which equals the node id
- *      of the source post.
- *    - 'translate' is a flag, either indicating that the translation
- *      is up to date (0) or needs to be updated (1).
+ * The node table stores the values used by this module:
+ *   - tnid: The translation set id, which equals the node id of the source
+ *     post.
+ *   - translate: (boolean) Indicates whether the translation is up to date
+ *     (FALSE) or needs to be updated (TRUE).
  */
 
 /**
diff --git a/modules/update/update.authorize.inc b/modules/update/update.authorize.inc
index c9b76dd..42db243 100644
--- a/modules/update/update.authorize.inc
+++ b/modules/update/update.authorize.inc
@@ -12,15 +12,15 @@
 /**
  * Callback invoked by authorize.php to update existing projects.
  *
- * @param $filetransfer
+ * @param object $filetransfer
  *   The FileTransfer object created by authorize.php for use during this
  *   operation.
- * @param $projects
+ * @param array $projects
  *   A nested array of projects to install into the live webroot, keyed by
  *   project name. Each subarray contains the following keys:
- *   - 'project': The canonical project short name.
- *   - 'updater_name': The name of the Updater class to use for this project.
- *   - 'local_url': The locally installed location of new code to update with.
+ *   - project: The canonical project short name.
+ *   - updater_name: The name of the Updater class to use for this project.
+ *   - local_url: The locally installed location of new code to update with.
  */
 function update_authorize_run_update($filetransfer, $projects) {
   $operations = array();
diff --git a/modules/update/update.module b/modules/update/update.module
index a2d705a..f1883a3 100644
--- a/modules/update/update.module
+++ b/modules/update/update.module
@@ -625,9 +625,9 @@ function _update_project_status_sort($a, $b) {
  * provides a "Check manually" link that refreshes the available update and
  * redirects back to the same page.
  *
- * @param $variables
+ * @param array $variables
  *   An associative array containing:
- *   - 'last': The timestamp when the site last checked for available updates.
+ *   - last: The timestamp when the site last checked for available updates.
  *
  * @see theme_update_report()
  * @see theme_update_available_updates_form()
