diff --git a/core/modules/user/tests/user_form_test.module b/core/modules/user/tests/user_form_test.module
index 4e907f3..56bcf25 100644
--- a/core/modules/user/tests/user_form_test.module
+++ b/core/modules/user/tests/user_form_test.module
@@ -23,7 +23,9 @@ function user_form_test_menu() {
 }
 
 /**
- * A test form for user_validate_current_pass().
+ * Form constructor for user_validate_current_pass() test form.
+ *
+ * @see user_form_test_current_password_submit()
  */
 function user_form_test_current_password($form, &$form_state, $account) {
   $account->user_form_test_field = '';
@@ -35,7 +37,7 @@ function user_form_test_current_password($form, &$form_state, $account) {
     '#description' => t('A field that would require a correct password to change.'),
     '#required' => TRUE,
   );
-  
+
   $form['current_pass'] = array(
     '#type' => 'password',
     '#title' => t('Current password'),
@@ -57,7 +59,7 @@ function user_form_test_current_password($form, &$form_state, $account) {
 }
 
 /**
- * Submit function for the test form for user_validate_current_pass().
+ * Form submission handler for user_form_test_current_password().
  */
 function user_form_test_current_password_submit($form, &$form_state) {
   drupal_set_message(t('The password has been validated and the form submitted successfully.'));
diff --git a/core/modules/user/user.admin.inc b/core/modules/user/user.admin.inc
index 58b0218..6114f5c 100644
--- a/core/modules/user/user.admin.inc
+++ b/core/modules/user/user.admin.inc
@@ -5,6 +5,17 @@
  * Admin page callback file for the user module.
  */
 
+/**
+ * Page callback: Shows the user management page.
+ *
+ * @param string $callback_arg
+ *   Action to take when viewing the page.
+ *
+ * @return array
+ *  A Form API renderable array.
+ *
+ * @see user_menu()
+ */
 function user_admin($callback_arg = '') {
   $op = isset($_POST['op']) ? $_POST['op'] : $callback_arg;
 
@@ -104,7 +115,7 @@ function user_filter_form() {
 }
 
 /**
- * Process result from user administration filter form.
+ * Form submission handler for user_filter_form().
  */
 function user_filter_form_submit($form, &$form_state) {
   $op = $form_state['values']['op'];
@@ -136,9 +147,9 @@ function user_filter_form_submit($form, &$form_state) {
 /**
  * Form builder; User administration page.
  *
- * @ingroup forms
  * @see user_admin_account_validate()
  * @see user_admin_account_submit()
+ * @ingroup forms
  */
 function user_admin_account() {
 
@@ -225,7 +236,9 @@ function user_admin_account() {
 }
 
 /**
- * Submit the user administration update form.
+ * Form submission handler for user_admin_account().
+ *
+ * @see user_admin_account_validate()
  */
 function user_admin_account_submit($form, &$form_state) {
   $operations = module_invoke_all('user_operations', $form, $form_state);
@@ -246,6 +259,11 @@ function user_admin_account_submit($form, &$form_state) {
   }
 }
 
+/**
+ * Form validation handler for user_admin_account().
+ *
+ * @see user_admin_account_submit()
+ */
 function user_admin_account_validate($form, &$form_state) {
   $form_state['values']['accounts'] = array_filter($form_state['values']['accounts']);
   if (count($form_state['values']['accounts']) == 0) {
@@ -254,10 +272,10 @@ function user_admin_account_validate($form, &$form_state) {
 }
 
 /**
- * Form builder; Configure user settings for this site.
+ * Form constructor for the user settings form.
  *
- * @ingroup forms
  * @see system_settings_form()
+ * @ingroup forms
  */
 function user_admin_settings() {
   // Settings for anonymous users.
@@ -643,11 +661,14 @@ function user_admin_settings() {
 }
 
 /**
- * Menu callback: administer permissions.
+ * Form constructor for the administer permissions form.
+ *
+ * @param rid
+ *   (optional) role id
  *
- * @ingroup forms
  * @see user_admin_permissions_submit()
  * @see theme_user_admin_permissions()
+ * @ingroup forms
  */
 function user_admin_permissions($form, $form_state, $rid = NULL) {
 
@@ -726,9 +747,7 @@ function user_admin_permissions($form, $form_state, $rid = NULL) {
 }
 
 /**
- * Save permissions selected on the administer permissions page.
- *
- * @see user_admin_permissions()
+ * Form submssion handler for user_admin_permissions().
  */
 function user_admin_permissions_submit($form, &$form_state) {
   foreach ($form_state['values']['role_names'] as $rid => $name) {
@@ -816,10 +835,10 @@ function theme_user_permission_description($variables) {
 }
 
 /**
- * Form to re-order roles or add a new one.
+ * Form constructor for a form to add or reorder user roles.
  *
- * @ingroup forms
  * @see theme_user_admin_roles()
+ * @ingroup forms
  */
 function user_admin_roles($form, $form_state) {
   $roles = db_select('role', 'r')
@@ -885,7 +904,7 @@ function user_admin_roles($form, $form_state) {
 }
 
 /**
- * Form submit function. Update the role weights.
+ * Form submission handler for user_admin_roles().
  */
 function user_admin_roles_order_submit($form, &$form_state) {
   foreach ($form_state['values']['roles'] as $rid => $role_values) {
@@ -941,10 +960,11 @@ function theme_user_admin_roles($variables) {
 }
 
 /**
- * Form to configure a single role.
+ * Form constructor for the role configuration form.
  *
- * @ingroup forms
+ * @see user_admin_role_validate()
  * @see user_admin_role_submit()
+ * @ingroup forms
  */
 function user_admin_role($form, $form_state, $role) {
   $form['role'] = array(
@@ -1008,14 +1028,22 @@ function user_admin_role_submit($form, &$form_state) {
 }
 
 /**
- * Form submit handler for the user_admin_role() form.
+ * Form submission handler for user_admin_role().
+ *
+ * Called when a user clicks on the 'Delete Role' button. Redirects the user to
+ * a confirmation dialogue.
+ *
+ * @see user_admin_role_delete_confirm()
+ * @see user_admin_role_delete_confirm_submit()
  */
 function user_admin_role_delete_submit($form, &$form_state) {
   $form_state['redirect'] = 'admin/people/roles/delete/' . $form_state['values']['role']['rid'];
 }
 
 /**
- * Form to confirm role delete operation.
+ * Form constructor for the confirm role delete form.
+ *
+ * @see user_admin_role_delete_confirm_submit()
  */
 function user_admin_role_delete_confirm($form, &$form_state, $role) {
   $form['rid'] = array(
@@ -1026,7 +1054,7 @@ function user_admin_role_delete_confirm($form, &$form_state, $role) {
 }
 
 /**
- * Form submit handler for user_admin_role_delete_confirm().
+ * Form submission handler for user_admin_role_delete_confirm().
  */
 function user_admin_role_delete_confirm_submit($form, &$form_state) {
   user_role_delete($form_state['values']['rid']);
diff --git a/core/modules/user/user.api.php b/core/modules/user/user.api.php
index 98b9887..0a5a197 100644
--- a/core/modules/user/user.api.php
+++ b/core/modules/user/user.api.php
@@ -197,19 +197,19 @@ function hook_user_format_name_alter(&$name, $account) {
 /**
  * Add mass user operations.
  *
- * This hook enables modules to inject custom operations into the mass operations
- * dropdown found at admin/people, by associating a callback function with
- * the operation, which is called when the form is submitted. The callback function
- * receives one initial argument, which is an array of the checked users.
+ * This hook enables modules to inject custom operations into the mass
+ * operations dropdown found at admin/people, by associating a callback function
+ * with the operation, which is called when the form is submitted. The callback
+ * function receives one initial argument, which is an array of the checked
+ * users.
  *
  * @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 menu.
- *   - "callback": Required. The function to call for the operation.
- *   - "callback arguments": Optional. An array of additional arguments to pass to
- *     the callback function.
- *
+ *   - label: The label for the operation, displayed in the dropdown menu.
+ *   - callback: The function to call for the operation.
+ *   - callback arguments: (optional) An array of additional arguments to pass
+ *     to the callback function.
  */
 function hook_user_operations() {
   $operations = array(
@@ -349,9 +349,9 @@ function hook_user_view($account, $view_mode, $langcode) {
 /**
  * The user was built; the module may modify the structured content.
  *
- * This hook is called after the content has been assembled in a structured array
- * and may be used for doing processing which requires that the complete user
- * content structure has been built.
+ * This hook is called after the content has been assembled in a structured
+ * array and may be used for doing processing which requires that the complete
+ * user content structure has been built.
  *
  * If the module wishes to act on the rendered HTML of the user rather than the
  * structured content array, it may use this hook to add a #post_render callback.
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 2250110..26a63d8 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -36,7 +36,7 @@ const USER_REGISTER_VISITORS = 1;
 const USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL = 2;
 
 /**
- * Implement hook_help().
+ * Implements hook_help().
  */
 function user_help($path, $arg) {
   global $user;
@@ -51,7 +51,7 @@ function user_help($path, $arg) {
       $output .= '<dt>' . t('Creating and managing users') . '</dt>';
       $output .= '<dd>' . t('The User module allows users with the appropriate <a href="@permissions">permissions</a> to create user accounts through the <a href="@people">People administration page</a>, where they can also assign users to one or more roles, and block or delete user accounts. If allowed, users without accounts (anonymous users) can create their own accounts on the <a href="@register">Create new account</a> page.', array('@permissions' => url('admin/people/permissions', array('fragment' => 'module-user')), '@people' => url('admin/people'), '@register' => url('user/register'))) . '</dd>';
       $output .= '<dt>' . t('User roles and permissions') . '</dt>';
-      $output .= '<dd>' . t('<em>Roles</em> are used to group and classify users; each user can be assigned one or more roles. By default there are two roles: <em>anonymous user</em> (users that are not logged in) and <em>authenticated user</em> (users that are registered and logged in). Depending on choices you made when you installed Drupal, the installation process may have defined more roles, and you can create additional custom roles on the <a href="@roles">Roles page</a>. After creating roles, you can set permissions for each role on the <a href="@permissions_user">Permissions page</a>. Granting a permission allows users who have been assigned a particular role to perform an action on the site, such as viewing a particular type of content, editing or creating content, administering settings for a particular module, or using a particular function of the site (such as search).', array('@permissions_user' => url('admin/people/permissions'), '@roles' => url('admin/people/roles'))) . '</dd>';
+      $output .= '<dd>' . t('<em>Roles</em> are used to group and classify users; each user can be assigned one or more roles. By default there are two roles: <em>anonymous user</em> (users that are not logged in) and <em>authenticated user</em> (users that are registered and logged in). Depending on choices you made when you installed Drupal, the installation process may have defined more roles, and you can create additional custom roles on the <a href="@roles">Roles page</a>. After creating roles, you can set permissions for each role on the <a href="@permissions_user">Permissions page</a>. Granting a permission allows users who have been assigned a particular role to perform an action on the site, such as viewing a particular type of content, editing or creating content, administering settings for a particular module, or using a particular function of the site (such as search).', array('@permissions_user' => url('admin/people/permissions'), '@roles' => url('admin/people/permissions/roles'))) . '</dd>';
       $output .= '<dt>' . t('Account settings') . '</dt>';
       $output .= '<dd>' . t('The <a href="@accounts">Account settings page</a> allows you to manage settings for the displayed name of the anonymous user role, personal contact forms, user registration, and account cancellation. On this page you can also manage settings for account personalization (including signatures and user pictures), and adapt the text for the e-mail messages that are sent automatically during the user registration process.', array('@accounts'  => url('admin/config/people/accounts'))) . '</dd>';
       $output .= '</dl>';
@@ -59,8 +59,8 @@ function user_help($path, $arg) {
     case 'admin/people/create':
       return '<p>' . t("This web page allows administrators to register new users. Users' e-mail addresses and usernames must be unique.") . '</p>';
     case 'admin/people/permissions':
-      return '<p>' . t('Permissions let you control what users can do and see on your site. You can define a specific set of permissions for each role. (See the <a href="@role">Roles</a> page to create a role). Two important roles to consider are Authenticated Users and Administrators. Any permissions granted to the Authenticated Users role will be given to any user who can log into your site. You can make any role the Administrator role for the site, meaning this will be granted all new permissions automatically. You can do this on the <a href="@settings">User Settings</a> page. You should be careful to ensure that only trusted users are given this access and level of control of your site.', array('@role' => url('admin/people/roles'), '@settings' => url('admin/config/people/accounts'))) . '</p>';
-    case 'admin/people/roles':
+      return '<p>' . t('Permissions let you control what users can do and see on your site. You can define a specific set of permissions for each role. (See the <a href="@role">Roles</a> page to create a role). Two important roles to consider are Authenticated Users and Administrators. Any permissions granted to the Authenticated Users role will be given to any user who can log into your site. You can make any role the Administrator role for the site, meaning this will be granted all new permissions automatically. You can do this on the <a href="@settings">User Settings</a> page. You should be careful to ensure that only trusted users are given this access and level of control of your site.', array('@role' => url('admin/people/permissions/roles'), '@settings' => url('admin/config/people/accounts'))) . '</p>';
+    case 'admin/people/permissions/roles':
       $output = '<p>' . t('Roles allow you to fine tune the security and administration of Drupal. A role defines a group of users that have certain privileges as defined on the <a href="@permissions">permissions page</a>. Examples of roles include: anonymous user, authenticated user, moderator, administrator and so on. In this area you will define the names and order of the roles on your site. It is recommended to order your roles from least permissive (anonymous user) to most permissive (administrator). To delete a role choose "edit role".', array('@permissions' => url('admin/people/permissions'))) . '</p>';
       $output .= '<p>' . t('Drupal has three special user roles:') . '</p>';
       $output .= '<ul>';
@@ -349,7 +349,7 @@ function user_load_by_mail($mail) {
  * @param string $name
  *   String with the account's user name.
  * @return object|bool
- *   A fully-loaded $user object upon successful user load or FALSE if user
+ *   A fully-loaded user object upon successful user load or FALSE if user
  *   cannot be loaded.
  *
  * @see user_load_multiple()
@@ -419,7 +419,7 @@ function user_validate_picture(&$form, &$form_state) {
 }
 
 /**
- * Generate a random alphanumeric password.
+ * Generates a random alphanumeric password.
  */
 function user_password($length = 10) {
   // This variable contains the list of allowable characters for the
@@ -446,7 +446,7 @@ function user_password($length = 10) {
 }
 
 /**
- * Determine the permissions for one or more roles.
+ * Determines the permissions for one or more roles.
  *
  * @param $roles
  *   An array whose keys are the role IDs of interest, such as $user->roles.
@@ -1203,7 +1203,7 @@ function user_preprocess_block(&$variables) {
 }
 
 /**
- * Format a username.
+ * Formats a username.
  *
  * By default, the passed-in object's 'name' property is used if it exists, or
  * else, the site-defined value for the 'anonymous' variable. However, a module
@@ -1767,12 +1767,13 @@ function user_uid_only_optional_to_arg($arg) {
  * @param $uid
  *   An optional user ID of the user to load. If not provided, the current
  *   user's ID will be used.
+ *
  * @return
  *   A fully-loaded $user object upon successful user load, FALSE if user
  *   cannot be loaded.
  *
- * @see user_load()
  * @todo rethink the naming of this in Drupal 8.
+ * @see user_load()
  */
 function user_uid_optional_load($uid = NULL) {
   if (!isset($uid)) {
@@ -1811,10 +1812,11 @@ function user_page_title($account) {
 }
 
 /**
- * Discover which external authentication module(s) authenticated a username.
+ * Discovers which external authentication module(s) authenticated a username.
  *
  * @param $authname
  *   A username used by an external authentication module.
+ *
  * @return
  *   An associative array with module as key and username as value.
  */
@@ -1824,15 +1826,17 @@ function user_get_authmaps($authname = NULL) {
 }
 
 /**
- * Save mappings of which external authentication module(s) authenticated
- * a user. Maps external usernames to user ids in the users table.
+ * Saves a list of which external authentication module(s) authenticated a user.
+ *
+ * Maps external usernames to user IDs in the users table.
  *
  * @param $account
  *   A user object.
  * @param $authmaps
  *   An associative array with a compound key and the username as the value.
- *   The key is made up of 'authname_' plus the name of the external authentication
- *   module.
+ *   The key is made up of 'authname_' plus the name of the external
+ *   authentication module.
+ *
  * @see user_external_login_register()
  */
 function user_set_authmaps($account, $authmaps) {
@@ -1857,8 +1861,10 @@ function user_set_authmaps($account, $authmaps) {
 }
 
 /**
- * Form builder; the main user login form.
+ * Form constructor for the user login form.
  *
+ * @see user_login_default_validators()
+ * @see user_login_submit()
  * @ingroup forms
  */
 function user_login($form, &$form_state) {
@@ -1894,16 +1900,22 @@ function user_login($form, &$form_state) {
 }
 
 /**
- * Set up a series for validators which check for blocked users,
- * then authenticate against local database, then return an error if
- * authentication fails. Distributed authentication modules are welcome
- * to use hook_form_alter() to change this series in order to
- * authenticate against their user database instead of the local users
- * table. If a distributed authentication module is successful, it
- * should set $form_state['uid'] to a user ID.
+ * Returns a list of validation functions for user_login().
+ *
+ * These validators first check for blocked users; then authenticate against
+ * records in the local database; and finally, return an error if
+ * authentication fails.
  *
- * We use three validators instead of one since external authentication
- * modules usually only need to alter the second validator.
+ * Distributed authentication modules are welcome to use hook_form_alter() to
+ * change this series in order to authenticate against their user database
+ * instead of the local users table. If a distributed authentication module is
+ * successful, it should set $form_state['uid'] to a user ID.
+ *
+ * We use three validators instead of one since external authentication modules
+ * usually only need to alter the second validator.
+ *
+ * @return array
+ *   A simple list of validate functions.
  *
  * @see user_login_name_validate()
  * @see user_login_authenticate_validate()
@@ -1916,7 +1928,9 @@ function user_login_default_validators() {
 }
 
 /**
- * A FAPI validate handler. Sets an error if supplied username has been blocked.
+ * Form validation handler for user_login().
+ *
+ * Sets an error if the supplied username has been blocked.
  */
 function user_login_name_validate($form, &$form_state) {
   if (isset($form_state['values']['name']) && user_is_blocked($form_state['values']['name'])) {
@@ -1926,9 +1940,10 @@ function user_login_name_validate($form, &$form_state) {
 }
 
 /**
- * A validate handler on the login form. Check supplied username/password
- * against local users table. If successful, $form_state['uid']
- * is set to the matching user ID.
+ * Form validation handler for user_login().
+ *
+ * Check supplied username/password against local users table. If successful,
+ * $form_state['uid'] is set to the matching user ID.
  */
 function user_login_authenticate_validate($form, &$form_state) {
   $password = trim($form_state['values']['pass']);
@@ -1971,11 +1986,10 @@ function user_login_authenticate_validate($form, &$form_state) {
 }
 
 /**
- * The final validation handler on the login form.
+ * Form validation handler for user_login().
  *
- * Sets a form error if user has not been authenticated, or if too many
- * logins have been attempted. This validation function should always
- * be the last one.
+ * Sets a form error if user has not been authenticated, or if too many logins
+ * have been attempted. This validation function should always be the last one.
  */
 function user_login_final_validate($form, &$form_state) {
   if (empty($form_state['uid'])) {
@@ -2008,12 +2022,13 @@ function user_login_final_validate($form, &$form_state) {
 }
 
 /**
- * Try to validate the user's login credentials locally.
+ * Tries to validate a user's login credentials locally.
  *
  * @param $name
  *   User name to authenticate.
  * @param $password
  *   A plain-text password, such as trimmed text from form values.
+ *
  * @return
  *   The user's uid on success, or FALSE on failure to authenticate.
  */
@@ -2040,10 +2055,10 @@ function user_authenticate($name, $password) {
 }
 
 /**
- * Finalize the login process. Must be called when logging in a user.
+ * Finalizes the login process.
  *
- * The function records a watchdog message about the new session, saves the
- * login timestamp, calls hook_user op 'login' and generates a new session. *
+ * Must be called when logging in a user. Records a watchdog message about the
+ * new session, saves the login timestamp, and generates a new session.
  */
 function user_login_finalize(&$edit = array()) {
   global $user;
@@ -2065,9 +2080,11 @@ function user_login_finalize(&$edit = array()) {
 }
 
 /**
- * Submit handler for the login form. Load $user object and perform standard login
- * tasks. The user is then redirected to the My Account page. Setting the
- * destination in the query string overrides the redirect.
+ * Form submission handler for user_login().
+ *
+ * Loads the user object and performs standard login tasks. The user is then
+ * redirected to the My Account page. Setting the destination in the query
+ * string overrides the redirect.
  */
 function user_login_submit($form, &$form_state) {
   global $user;
@@ -2078,8 +2095,10 @@ function user_login_submit($form, &$form_state) {
 }
 
 /**
- * Helper function for authentication modules. Either logs in or registers
- * the current user, based on username. Either way, the global $user object is
+ * Saves user details locally for users authenticated by external mechanisms.
+ *
+ * Helper function for authentication modules. Either logs in or registers the
+ * current user, based on username. Either way, the global $user object is
  * populated and login tasks are performed.
  */
 function user_external_login_register($name, $module) {
@@ -2170,7 +2189,7 @@ function user_pass_rehash($password, $timestamp, $login) {
 }
 
 /**
- * Cancel a user account.
+ * Cancels a user account.
  *
  * Since the user cancellation process needs to be run in a batch, either
  * Form API will invoke it, or batch_process() needs to be invoked after calling
@@ -2272,7 +2291,7 @@ function _user_cancel($edit, $account, $method) {
 }
 
 /**
- * Delete a user.
+ * Deletes a user.
  *
  * @param $uid
  *   A user ID.
@@ -2282,7 +2301,7 @@ function user_delete($uid) {
 }
 
 /**
- * Delete multiple user accounts.
+ * Deletes multiple user accounts.
  *
  * @param $uids
  *   An array of user IDs.
@@ -2341,7 +2360,7 @@ function user_view_page($account) {
 }
 
 /**
- * Generate an array for rendering the given user.
+ * Generates an array for rendering the given user.
  *
  * When viewing a user profile, the $page array contains:
  *
@@ -2620,10 +2639,8 @@ function user_mail_tokens(&$replacements, $data, $options) {
   }
 }
 
-/*** Administrative features ***********************************************/
-
 /**
- * Retrieve an array of roles matching specified conditions.
+ * Retrieves an array of roles matching specified conditions.
  *
  * @param $membersonly
  *   Set this to TRUE to exclude the 'anonymous' role.
@@ -2678,6 +2695,8 @@ function user_roles($membersonly = FALSE, $permission = NULL) {
  * @return
  *   A fully-loaded role object if a role with the given ID exists, or FALSE
  *   otherwise.
+ *
+ * @see user_role_load_by_name()
  */
 function user_role_load($rid) {
   return db_select('role', 'r')
@@ -2694,7 +2713,7 @@ function user_role_load($rid) {
  *   A role object to modify or add.
  *
  * @return
- *   Status constant indicating if role was created or updated.
+ *   Status constant indicating if the role was created or updated.
  *   Failure to write the user role record will return FALSE. Otherwise
  *   SAVED_NEW or SAVED_UPDATED is returned depending on the operation
  *   performed.
@@ -2737,7 +2756,7 @@ function user_role_save($role) {
 }
 
 /**
- * Delete a user role from database.
+ * Deletes a user role from the database.
  *
  * @param $role
  *   A string with the role ID.
@@ -2776,7 +2795,7 @@ function user_role_delete_access($role) {
 }
 
 /**
- * Determine the modules that permissions belong to.
+ * Determines the modules that permissions belong to.
  *
  * @return
  *   An associative array in the format $permission => $module.
@@ -2793,7 +2812,7 @@ function user_permission_get_modules() {
 }
 
 /**
- * Change permissions for a user role.
+ * Changes permissions for a user role.
  *
  * This function may be used to grant and revoke multiple permissions at once.
  * For example, when a form exposes checkboxes to configure permissions for a
@@ -2835,7 +2854,7 @@ function user_role_change_permissions($rid, array $permissions = array()) {
 }
 
 /**
- * Grant permissions to a user role.
+ * Grants permissions to a user role.
  *
  * @param $rid
  *   The ID of a user role to alter.
@@ -2866,7 +2885,7 @@ function user_role_grant_permissions($rid, array $permissions = array()) {
 }
 
 /**
- * Revoke permissions from a user role.
+ * Revokes permissions from a user role.
  *
  * @param $rid
  *   The ID of a user role to alter.
@@ -3026,6 +3045,9 @@ function user_multiple_role_edit($accounts, $operation, $rid) {
   }
 }
 
+/**
+ * Form constructor for multiple user account cancellation confirmation form.
+ */
 function user_multiple_cancel_confirm($form, &$form_state) {
   $edit = $form_state['input'];
 
@@ -3091,7 +3113,7 @@ function user_multiple_cancel_confirm($form, &$form_state) {
 }
 
 /**
- * Submit handler for mass-account cancellation form.
+ * Form submission handler for user_multiple_cancel_confirm().
  *
  * @see user_multiple_cancel_confirm()
  * @see user_cancel_confirm_form_submit()
@@ -3123,7 +3145,7 @@ function user_multiple_cancel_confirm_submit($form, &$form_state) {
 }
 
 /**
- * List user administration filters that can be applied.
+ * Lists user administration filters that can be applied.
  */
 function user_filters() {
   // Regular filters
@@ -3245,17 +3267,19 @@ function theme_user_signature($variables) {
 }
 
 /**
- * Get the language object preferred by the user. This user preference can
- * be set on the user account editing page, and is only available if there
- * are more than one languages enabled on the site. If the user did not
- * choose a preferred language, or is the anonymous user, the $default
- * value, or if it is not set, the site default language will be returned.
+ * Gets the language object preferred by the user.
+ *
+ * This user preference can be set on the user account editing page, and is only
+ * available if there are more than one languages enabled on the site. If the
+ * user did not choose a preferred language, or is the anonymous user, the
+ * $default value, or if it is not set, the site default language will be
+ * returned.
  *
  * @param $account
  *   User account to look up language for.
  * @param $default
- *   Optional default language object to return if the account
- *   has no valid language.
+ *   Optional default language object to return if the account has no valid
+ *   language.
  */
 function user_preferred_language($account, $default = NULL) {
   $language_list = language_list();
@@ -3268,8 +3292,7 @@ function user_preferred_language($account, $default = NULL) {
 }
 
 /**
- * Conditionally create and send a notification email when a certain
- * operation happens on the given user account.
+ * Sends notification emails to users.
  *
  * @see user_mail_tokens()
  * @see drupal_mail()
@@ -3294,8 +3317,11 @@ function user_preferred_language($account, $default = NULL) {
  *   Optional language to use for the notification, overriding account language.
  *
  * @return
- *   The return value from drupal_mail_system()->mail(), if ends up being
+ *   The return value from drupal_mail_system()->mail(), if it ends up being
  *   called.
+ *
+ * @see user_mail_tokens()
+ * @see drupal_mail()
  */
 function _user_mail_notify($op, $account, $language = NULL) {
   // By default, we always notify except for canceled and blocked.
@@ -3477,9 +3503,11 @@ function user_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id
 }
 
 /**
- * Additional submit handler for the 'Edit field instance' form.
+ * Form submission handler for field_ui_field_edit_form().
  *
- * Make sure the 'user_register_form' setting is set for required fields.
+ * Makes sure the 'user_register_form' setting is set for required fields.
+ *
+ * @see user_form_field_ui_field_edit_form_alter()
  */
 function user_form_field_ui_field_edit_form_submit($form, &$form_state) {
   $instance = $form_state['values']['instance'];
@@ -3490,12 +3518,12 @@ function user_form_field_ui_field_edit_form_submit($form, &$form_state) {
 }
 
 /**
- * Form builder; the user registration form.
+ * Form constructor for the user registration form.
  *
- * @ingroup forms
  * @see user_account_form()
  * @see user_account_form_validate()
  * @see user_register_submit()
+ * @ingroup forms
  */
 function user_register_form($form, &$form_state) {
   global $user;
@@ -3552,19 +3580,21 @@ function user_register_form($form, &$form_state) {
 }
 
 /**
- * Validation function for the user registration form.
+ * Form validation handler for user_register_form().
+ *
+ * @see user_register_submit()
  */
 function user_register_validate($form, &$form_state) {
   entity_form_field_validate('user', $form, $form_state);
 }
 
 /**
- * Submit handler for the user registration form.
+ * Form submission handler for user_register_form().
  *
- * This function is shared by the installation form and the normal registration form,
- * which is why it can't be in the user.pages.inc file.
+ * This function is shared by the installation form and the normal registration
+ * form, which is why it can't be in the user.pages.inc file.
  *
- * @see user_register_form()
+ * @see user_register_validate()
  */
 function user_register_submit($form, &$form_state) {
   $admin = $form_state['values']['administer_users'];
@@ -3669,7 +3699,7 @@ function user_modules_uninstalled($modules) {
 }
 
 /**
- * Helper function to rewrite the destination to avoid redirecting to login page after login.
+ * Ensures that users are not redirected to the login page after logging in.
  *
  * Third-party authentication modules may use this function to determine the
  * proper destination after a user has been properly logged in.
@@ -3696,7 +3726,7 @@ function user_cookie_save(array $values) {
 }
 
 /**
- * Delete a visitor information cookie.
+ * Deletes a visitor information cookie.
  *
  * @param $cookie_name
  *   A cookie name such as 'homepage'.
diff --git a/core/modules/user/user.pages.inc b/core/modules/user/user.pages.inc
index b568f66..b4b0ba4 100644
--- a/core/modules/user/user.pages.inc
+++ b/core/modules/user/user.pages.inc
@@ -11,7 +11,15 @@ use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
 
 /**
- * Menu callback; Retrieve a JSON object containing autocomplete suggestions for existing users.
+ * Menu callback: Retrieves autocomplete suggestions for existing users in JSON.
+ *
+ * @param string $string
+ *   (optional) Text to match against existing usernames.
+ *
+ * @return string
+ *   A JSON-formatted string of username suggestions matching the specified string.
+ *
+ * @see user_menu()
  */
 function user_autocomplete($string = '') {
   $matches = array();
@@ -26,11 +34,11 @@ function user_autocomplete($string = '') {
 }
 
 /**
- * Form builder; Request a password reset.
+ * Form constructor for the request password reset form.
  *
- * @ingroup forms
  * @see user_pass_validate()
  * @see user_pass_submit()
+ * @ingroup forms
  */
 function user_pass() {
   global $user;
@@ -58,6 +66,11 @@ function user_pass() {
   return $form;
 }
 
+/**
+ * Form validation handler for user_pass().
+ *
+ * @see user_pass_submit()
+ */
 function user_pass_validate($form, &$form_state) {
   $name = trim($form_state['values']['name']);
   // Try to load by email.
@@ -76,6 +89,11 @@ function user_pass_validate($form, &$form_state) {
   }
 }
 
+/**
+ * Form submission handler for user_pass().
+ *
+ * @see user_pass_validate()
+ */
 function user_pass_submit($form, &$form_state) {
   $language_interface = drupal_container()->get(LANGUAGE_TYPE_INTERFACE);
 
@@ -92,7 +110,7 @@ function user_pass_submit($form, &$form_state) {
 }
 
 /**
- * Menu callback; process one time login link and redirects to the user page on success.
+ * Processes a one-time login link and redirects to user edit page on success.
  */
 function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $action = NULL) {
   global $user;
@@ -255,14 +273,18 @@ function user_profile_form($form, &$form_state, $account) {
 }
 
 /**
- * Validation function for the user account and profile editing form.
+ * Form validation handler for user_profile_form().
+ *
+ * @see user_profile_form_submit().
  */
 function user_profile_form_validate($form, &$form_state) {
   entity_form_field_validate('user', $form, $form_state);
 }
 
 /**
- * Submit function for the user account and profile editing form.
+ * Form submission handler for user_profile_form().
+ *
+ * @see user_profile_form_validate().
  */
 function user_profile_form_submit($form, &$form_state) {
   $account = $form_state['user'];
@@ -284,7 +306,10 @@ function user_profile_form_submit($form, &$form_state) {
 }
 
 /**
- * Submit function for the 'Cancel account' button on the user edit form.
+ * Form submission handler for user_profile_form().
+ *
+ * Called when the 'Cancel account' button is clicked. Redirects the user to a
+ * confirm dialogue.
  */
 function user_edit_cancel_submit($form, &$form_state) {
   $destination = array();
@@ -297,10 +322,10 @@ function user_edit_cancel_submit($form, &$form_state) {
 }
 
 /**
- * Form builder; confirm form for cancelling user account.
+ * Form constructor for the user cancellation confirm form.
  *
- * @ingroup forms
  * @see user_edit_cancel_submit()
+ * @ingroup forms
  */
 function user_cancel_confirm_form($form, &$form_state, $account) {
   global $user;
@@ -374,9 +399,8 @@ function user_cancel_confirm_form($form, &$form_state, $account) {
 }
 
 /**
- * Submit handler for the account cancellation confirm form.
+ * Form submission handler for user_cancel_confirm_form().
  *
- * @see user_cancel_confirm_form()
  * @see user_multiple_cancel_confirm_submit()
  */
 function user_cancel_confirm_form_submit($form, &$form_state) {
@@ -406,7 +430,7 @@ function user_cancel_confirm_form_submit($form, &$form_state) {
 }
 
 /**
- * Helper function to return available account cancellation methods.
+ * Returns a list of available account cancellation methods.
  *
  * See documentation of hook_user_cancel_methods_alter().
  *
@@ -457,10 +481,18 @@ function user_cancel_methods() {
 }
 
 /**
- * Menu callback; Cancel a user account via e-mail confirmation link.
+ * Menu callback: Cancels a user account via an e-mail confirmation link.
+ *
+ * @param object $account
+ *   User account to cancel.
+ * @param int $timestamp
+ *   (optional) A unix timestamp of when the cancellation request was generated.
+ * @param string $hashed_pass
+ *   (optional) A unique hash based on the $account's password and $timestamp.
  *
  * @see user_cancel_confirm_form()
  * @see user_cancel_url()
+ * @see user_menu()
  */
 function user_cancel_confirm($account, $timestamp = 0, $hashed_pass = '') {
   // Time out in seconds until cancel URL expires; 24 hours = 86400 seconds.
