commit 0f82073882ee9491a52395de5b4a80b859f0e79e
Author: Damien Tournoud <damien@tournoud.net>
Date:   Thu Aug 13 23:10:33 2009 +0200

    Switch from '_' to '__' for the hook separator.

diff --git a/includes/common.inc b/includes/common.inc
index 4f1368e..55333f5 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -3792,7 +3792,7 @@ function drupal_alter($type, &$data) {
   $args = array_merge($args, $additional_args);
 
   foreach (module_implements($type . '_alter') as $module) {
-    $function = $module . '_' . $type . '_alter';
+    $function = $module . '__' . $type . '_alter';
     call_user_func_array($function, $args);
   }
 }
diff --git a/includes/file.inc b/includes/file.inc
index fc568a8..1ec96cd 100644
--- a/includes/file.inc
+++ b/includes/file.inc
@@ -513,7 +513,7 @@ function file_load_multiple($fids = array(), $conditions = array()) {
   // and add them to the static cache.
   if (!empty($files)) {
     foreach (module_implements('file_load') as $module) {
-      $function = $module . '_file_load';
+      $function = $module . '__file_load';
       $function($files);
     }
   }
diff --git a/includes/image.inc b/includes/image.inc
index 4309ac9..7570e3b 100644
--- a/includes/image.inc
+++ b/includes/image.inc
@@ -65,7 +65,7 @@ function image_get_toolkit() {
   if (!isset($toolkit)) {
     $toolkits = image_get_available_toolkits();
     $toolkit = variable_get('image_toolkit', 'gd');
-    if (!isset($toolkits[$toolkit]) || !drupal_function_exists('image_' . $toolkit . '_load')) {
+    if (!isset($toolkits[$toolkit]) || !drupal_function_exists('image_' . $toolkit . '__load')) {
       // The selected toolkit isn't available so return the first one found. If
       // none are available this will return FALSE.
       reset($toolkits);
@@ -89,7 +89,7 @@ function image_get_toolkit() {
  *   Mixed values (typically Boolean indicating successful operation).
  */
 function image_toolkit_invoke($method, stdClass $image, array $params = array()) {
-  $function = 'image_' . $image->toolkit . '_' . $method;
+  $function = 'image_' . $image->toolkit . '__' . $method;
   if (drupal_function_exists($function)) {
     array_unshift($params, $image);
     return call_user_func_array($function, $params);
diff --git a/includes/install.inc b/includes/install.inc
index fff03e8..995c6fc 100644
--- a/includes/install.inc
+++ b/includes/install.inc
@@ -95,8 +95,8 @@ function drupal_get_schema_versions($module) {
   $updates = array();
   $functions = get_defined_functions();
   foreach ($functions['user'] as $function) {
-    if (strpos($function, $module . '_update_') === 0) {
-      $version = substr($function, strlen($module . '_update_'));
+    if (strpos($function, $module . '__update_') === 0) {
+      $version = substr($function, strlen($module . '__update_'));
       if (is_numeric($version)) {
         $updates[] = $version;
       }
@@ -171,7 +171,7 @@ function drupal_install_profile_name() {
 
   if (!isset($name)) {
     // Load profile details.
-    $function = $profile . '_profile_details';
+    $function = $profile . '__profile_details';
     if (function_exists($function)) {
       $details = $function();
     }
@@ -987,7 +987,7 @@ function drupal_check_profile($profile) {
   $requirements = array();
   foreach ($installs as $install) {
     require_once DRUPAL_ROOT . '/' . $install->filepath;
-    $function = $install->name . '_requirements';
+    $function = $install->name . '__requirements';
     if (function_exists($function)) {
       $requirements = array_merge($requirements, $function('install'));
     }
diff --git a/includes/mail.inc b/includes/mail.inc
index 33e8436..102a777 100644
--- a/includes/mail.inc
+++ b/includes/mail.inc
@@ -115,7 +115,7 @@ function drupal_mail($module, $key, $to, $language, $params = array(), $from = N
   // Build the e-mail (get subject and body, allow additional headers) by
   // invoking hook_mail() on this module. We cannot use module_invoke() as
   // we need to have $message by reference in hook_mail().
-  if (drupal_function_exists($function = $module . '_mail')) {
+  if (drupal_function_exists($function = $module . '__mail')) {
     $function($key, $message, $params);
   }
 
diff --git a/includes/menu.inc b/includes/menu.inc
index a9917dc..2d7959e 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -1328,7 +1328,7 @@ function menu_get_active_help() {
   $empty_arg = drupal_help_arg();
 
   foreach (module_implements('help') as $module) {
-    $function = $module . '_help';
+    $function = $module . '__help';
     // Lookup help for this path.
     if ($help = $function($router_path, $arg)) {
       $output .= $help . "\n";
@@ -1857,7 +1857,7 @@ function menu_router_build() {
   // a given item came from.
   $callbacks = array();
   foreach (module_implements('menu') as $module) {
-    $router_items = call_user_func($module . '_menu');
+    $router_items = call_user_func($module . '__menu');
     if (isset($router_items) && is_array($router_items)) {
       foreach (array_keys($router_items) as $path) {
         $router_items[$path]['module'] = $module;
diff --git a/includes/module.inc b/includes/module.inc
index 83a421d..d186a3a 100644
--- a/includes/module.inc
+++ b/includes/module.inc
@@ -324,7 +324,7 @@ function module_disable($module_list) {
  *   implemented in that module.
  */
 function module_hook($module, $hook) {
-  $function = $module . '_' . $hook;
+  $function = $module . '__' . $hook;
   return function_exists($function) || drupal_function_exists($function);
 }
 
@@ -388,7 +388,7 @@ function module_implements($hook, $sort = FALSE) {
       $implementations[$hook] = db_query("SELECT module FROM {registry} WHERE type = 'function' AND suffix = :hook ORDER BY weight, module", array(':hook' => $hook))->fetchCol();
     }
     foreach ($implementations[$hook] as $module) {
-      $function = $module . '_' . $hook;
+      $function = $module . '__' . $hook;
       if (!function_exists($function)) {
         drupal_function_exists($function);
       }
@@ -428,7 +428,7 @@ function module_implements($hook, $sort = FALSE) {
 function _module_implements_maintenance($hook, $sort = FALSE) {
   $implementations = array();
   foreach (module_list() as $module) {
-    $function = $module . '_' . $hook;
+    $function = $module . '__' . $hook;
     if (function_exists($function)) {
       $implementations[] = $module;
     }
@@ -457,7 +457,7 @@ function module_invoke() {
   $hook = $args[1];
   unset($args[0], $args[1]);
   if (module_hook($module, $hook)) {
-    return call_user_func_array($module . '_' . $hook, $args);
+    return call_user_func_array($module . '__' . $hook, $args);
   }
 }
 /**
@@ -477,7 +477,7 @@ function module_invoke_all() {
   unset($args[0]);
   $return = array();
   foreach (module_implements($hook) as $module) {
-    $function = $module . '_' . $hook;
+    $function = $module . '__' . $hook;
     if (drupal_function_exists($function)) {
       $result = call_user_func_array($function, $args);
       if (isset($result) && is_array($result)) {
diff --git a/includes/registry.inc b/includes/registry.inc
index 7243ff2..7946dc3 100644
--- a/includes/registry.inc
+++ b/includes/registry.inc
@@ -180,7 +180,7 @@ function _registry_parse_file($filename, $contents, $module = '', $weight = 0) {
         if ($type == 'function' && !empty($module)) {
           $n = strlen($module);
           if (substr($resource_name, 0, $n) == $module) {
-            $suffix = substr($resource_name, $n + 1);
+            $suffix = substr($resource_name, $n + 2);
           }
         }
         $fields = array(
diff --git a/includes/theme.inc b/includes/theme.inc
index 6cb7ab0..6739687 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -311,7 +311,7 @@ function drupal_theme_rebuild() {
  */
 function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
   $result = array();
-  $function = $name . '_theme';
+  $function = $name . '__theme';
 
   // Template functions work in two distinct phases with the process
   // functions always being executed after the preprocess functions.
diff --git a/includes/update.inc b/includes/update.inc
index c72e085..acbe4a9 100644
--- a/includes/update.inc
+++ b/includes/update.inc
@@ -308,7 +308,7 @@ function update_do_one($module, $number, &$context) {
     return;
   }
 
-  $function = $module . '_update_' . $number;
+  $function = $module . '__update_' . $number;
   if (function_exists($function)) {
     $ret = $function($context['sandbox']);
   }
diff --git a/install.php b/install.php
index 4d7f98d..092b350 100644
--- a/install.php
+++ b/install.php
@@ -562,7 +562,7 @@ function install_tasks($install_state) {
 
   // Now add any tasks defined by the installation profile.
   if (!empty($install_state['parameters']['profile'])) {
-    $function = $install_state['parameters']['profile'] . '_profile_tasks';
+    $function = $install_state['parameters']['profile'] . '__profile_tasks';
     if (function_exists($function)) {
       $result = $function($install_state);
       if (is_array($result)) {
@@ -1152,7 +1152,7 @@ function install_select_locale(&$install_state) {
   }
   else {
     // Allow profile to pre-select the language, skipping the selection.
-    $function = $profilename . '_profile_details';
+    $function = $profilename . '__profile_details';
     if (function_exists($function)) {
       $details = $function();
       if (isset($details['language'])) {
@@ -1620,7 +1620,7 @@ function _install_configure_form(&$form_state, &$install_state) {
   // Allow the profile to alter this form. $form_state isn't available
   // here, but to conform to the hook_form_alter() signature, we pass
   // an empty array.
-  $hook_form_alter = $install_state['parameters']['profile'] . '_form_alter';
+  $hook_form_alter = $install_state['parameters']['profile'] . '__form_alter';
   if (function_exists($hook_form_alter)) {
     $hook_form_alter($form, array(), 'install_configure');
   }
diff --git a/modules/field/field.attach.inc b/modules/field/field.attach.inc
index 755c56d..a7efc4c 100644
--- a/modules/field/field.attach.inc
+++ b/modules/field/field.attach.inc
@@ -324,7 +324,7 @@ function _field_invoke_multiple($op, $obj_type, $objects, &$a = NULL, &$b = NULL
   // For each field, invoke the field hook and collect results.
   foreach ($fields as $field_id => $field) {
     $field_name = $field['field_name'];
-    $function = $options['default'] ? 'field_default_' . $op : $field['module'] . '_field_' . $op;
+    $function = $options['default'] ? 'field_default_' . $op : $field['module'] . '__field_' . $op;
     if (drupal_function_exists($function)) {
       $results = $function($obj_type, $grouped_objects[$field_id], $field, $grouped_instances[$field_id], $grouped_items[$field_id], $options, $a, $b);
       if (isset($results)) {
@@ -459,7 +459,7 @@ function field_attach_form($obj_type, $object, &$form, &$form_state) {
 
   // Let other modules make changes to the form.
   foreach (module_implements('field_attach_form') as $module) {
-    $function = $module . '_field_attach_form';
+    $function = $module . '__field_attach_form';
     $function($obj_type, $object, $form, $form_state);
   }
 }
@@ -549,7 +549,7 @@ function field_attach_load($obj_type, $objects, $age = FIELD_LOAD_CURRENT, $opti
     // data before the storage engine, accumulating along the way.
     $skip_fields = array();
     foreach (module_implements('field_attach_pre_load') as $module) {
-      $function = $module . '_field_attach_pre_load';
+      $function = $module . '__field_attach_pre_load';
       $function($obj_type, $queried_objects, $age, $skip_fields, $options);
     }
 
@@ -563,7 +563,7 @@ function field_attach_load($obj_type, $objects, $age = FIELD_LOAD_CURRENT, $opti
     // Invoke hook_field_attach_load(): let other modules act on loading the
     // object.
     foreach (module_implements('field_attach_load') as $module) {
-      $function = $module . '_field_attach_load';
+      $function = $module . '__field_attach_load';
       $function($obj_type, $queried_objects, $age, $options);
     }
 
@@ -631,7 +631,7 @@ function field_attach_validate($obj_type, $object) {
 
   // Let other modules validate the object.
   foreach (module_implements('field_attach_validate') as $module) {
-    $function = $module . '_field_attach_validate';
+    $function = $module . '__field_attach_validate';
     $function($obj_type, $object, $errors);
   }
 
@@ -708,7 +708,7 @@ function field_attach_submit($obj_type, $object, $form, &$form_state) {
 
   // Let other modules act on submitting the object.
   foreach (module_implements('field_attach_submit') as $module) {
-    $function = $module . '_field_attach_submit';
+    $function = $module . '__field_attach_submit';
     $function($obj_type, $object, $form, $form_state);
   }
 }
@@ -729,7 +729,7 @@ function field_attach_presave($obj_type, $object) {
 
   // Let other modules act on presaving the object.
   foreach (module_implements('field_attach_presave') as $module) {
-    $function = $module . '_field_attach_presave';
+    $function = $module . '__field_attach_presave';
     $function($obj_type, $object);
   }
 }
@@ -758,7 +758,7 @@ function field_attach_insert($obj_type, $object) {
   // fields along the way.
   $skip_fields = array();
   foreach (module_implements('field_attach_pre_insert') as $module) {
-    $function = $module . '_field_attach_pre_insert';
+    $function = $module . '__field_attach_pre_insert';
     $function($obj_type, $object, $skip_fields);
   }
 
@@ -786,7 +786,7 @@ function field_attach_update($obj_type, $object) {
   // fields along the way.
   $skip_fields = array();
   foreach (module_implements('field_attach_pre_update') as $module) {
-    $function = $module . '_field_attach_pre_update';
+    $function = $module . '__field_attach_pre_update';
     $function($obj_type, $object, $skip_fields);
   }
 
@@ -814,7 +814,7 @@ function field_attach_delete($obj_type, $object) {
 
   // Let other modules act on deleting the object.
   foreach (module_implements('field_attach_delete') as $module) {
-    $function = $module . '_field_attach_delete';
+    $function = $module . '__field_attach_delete';
     $function($obj_type, $object);
   }
 
@@ -839,7 +839,7 @@ function field_attach_delete_revision($obj_type, $object) {
 
   // Let other modules act on deleting the revision.
   foreach (module_implements('field_attach_delete_revision') as $module) {
-    $function = $module . '_field_attach_delete_revision';
+    $function = $module . '__field_attach_delete_revision';
     $function($obj_type, $object);
   }
 }
@@ -931,7 +931,7 @@ function field_attach_query($field_id, $conditions, $count, &$cursor = NULL, $ag
   // handle the query.
   $skip_field = FALSE;
   foreach (module_implements('field_attach_pre_query') as $module) {
-    $function = $module . '_field_attach_pre_query';
+    $function = $module . '__field_attach_pre_query';
     $results = $function($field_id, $conditions, $count, $cursor, $age, $skip_field);
     // Stop as soon as a module claims it handled the query.
     if ($skip_field) {
@@ -940,7 +940,7 @@ function field_attach_query($field_id, $conditions, $count, &$cursor = NULL, $ag
   }
   // If the request hasn't been handled, let the storage engine handle it.
   if (!$skip_field) {
-    $function = variable_get('field_storage_module', 'field_sql_storage') . '_field_storage_query';
+    $function = variable_get('field_storage_module', 'field_sql_storage') . '__field_storage_query';
     $results = $function($field_id, $conditions, $count, $cursor, $age);
   }
 
@@ -1086,7 +1086,7 @@ function field_attach_create_bundle($bundle) {
   field_cache_clear();
 
   foreach (module_implements('field_attach_create_bundle') as $module) {
-    $function = $module . '_field_attach_create_bundle';
+    $function = $module . '__field_attach_create_bundle';
     $function($bundle);
   }
 }
@@ -1110,7 +1110,7 @@ function field_attach_rename_bundle($bundle_old, $bundle_new) {
   field_cache_clear();
 
   foreach (module_implements('field_attach_rename_bundle') as $module) {
-    $function = $module . '_field_attach_rename_bundle';
+    $function = $module . '__field_attach_rename_bundle';
     $function($bundle_old, $bundle_new);
   }
 }
@@ -1137,7 +1137,7 @@ function field_attach_delete_bundle($bundle) {
 
   // Let other modules act on deleting the bundle.
   foreach (module_implements('field_attach_delete_bundle') as $module) {
-    $function = $module . '_field_attach_delete_bundle';
+    $function = $module . '__field_attach_delete_bundle';
     $function($bundle, $instances);
   }
 }
diff --git a/modules/field/field.crud.inc b/modules/field/field.crud.inc
index 91f5748..7bd0845 100644
--- a/modules/field/field.crud.inc
+++ b/modules/field/field.crud.inc
@@ -844,7 +844,7 @@ function field_purge_data($obj_type, $object, $field, $instance) {
 
   // Let other modules act on purging the data.
   foreach (module_implements('field_attach_purge') as $module) {
-    $function = $module . '_field_attach_purge';
+    $function = $module . '__field_attach_purge';
     $function($obj_type, $object, $field, $instance);
   }
 }
diff --git a/modules/field/field.form.inc b/modules/field/field.form.inc
index f8e77e9..97a5f18 100644
--- a/modules/field/field.form.inc
+++ b/modules/field/field.form.inc
@@ -59,7 +59,7 @@ function field_default_form($obj_type, $object, $field, $instance, $items, &$for
   // element and make it the $delta value.
   else {
     $delta = isset($get_delta) ? $get_delta : 0;
-    $function = $instance['widget']['module'] . '_field_widget';
+    $function = $instance['widget']['module'] . '__field_widget';
     if (drupal_function_exists($function)) {
       if ($element = $function($form, $form_state, $field, $instance, $items, $delta)) {
         $defaults = array(
@@ -145,7 +145,7 @@ function field_multiple_value_form($field, $instance, $items, &$form, &$form_sta
     '#suffix' => '</div>',
   );
 
-  $function = $instance['widget']['module'] . '_field_widget';
+  $function = $instance['widget']['module'] . '__field_widget';
   if (drupal_function_exists($function)) {
     for ($delta = 0; $delta <= $max; $delta++) {
       if ($element = $function($form, $form_state, $field, $instance, $items, $delta)) {
@@ -283,7 +283,7 @@ function theme_field_multiple_value_form($element) {
 function field_default_form_errors($obj_type, $object, $field, $instance, $items, $form, $errors) {
   $field_name = $field['field_name'];
   if (!empty($errors[$field_name])) {
-    $function = $instance['widget']['module'] . '_field_widget_error';
+    $function = $instance['widget']['module'] . '__field_widget_error';
     $function_exists = drupal_function_exists($function);
 
     // Walk the form down to where the widget lives.
diff --git a/modules/field/field.module b/modules/field/field.module
index 0deb6d2..cb64dc8 100644
--- a/modules/field/field.module
+++ b/modules/field/field.module
@@ -281,7 +281,7 @@ function field_associate_fields($module) {
 function field_set_empty($field, $items) {
   // Filter out empty values.
   $filtered = array();
-  $function = $field['module'] . '_field_is_empty';
+  $function = $field['module'] . '___field_is_empty';
   foreach ((array) $items as $delta => $item) {
     if (!$function($item, $field)) {
       $filtered[] = $item;
@@ -434,7 +434,7 @@ function field_format($obj_type, $object, $field, $item, $formatter_type = NULL,
     $display['settings'] += field_info_formatter_settings($display['type']);
 
     if ($display['type'] !== 'hidden') {
-      $theme = $formatter['module'] . '_formatter_' . $display['type'];
+      $theme = $formatter['module'] . '__formatter_' . $display['type'];
 
       $element = array(
         '#theme' => $theme,
@@ -452,7 +452,7 @@ function field_format($obj_type, $object, $field, $item, $formatter_type = NULL,
 
         // hook_field('sanitize') expects an array of items, so we build one.
         $items = array($item);
-        $function = $field['module'] . '_field_sanitize';
+        $function = $field['module'] . '__field_sanitize';
         if (function_exists($function)) {
           $function($obj_type, $object, $field, $instance, $items);
         }
@@ -462,7 +462,7 @@ function field_format($obj_type, $object, $field, $item, $formatter_type = NULL,
       else {
         // Multiple values formatter.
         $items = $item;
-        $function = $field['module'] . '_field_sanitize';
+        $function = $field['module'] . '__field_sanitize';
         if (function_exists($function)) {
           $function($obj_type, $object, $field, $instance, $items);
         }
@@ -509,7 +509,7 @@ function field_view_field($obj_type, $object, $field, $instance, $build_mode = '
     $items = $object->$field['field_name'];
 
     // One-field equivalent to _field_invoke('sanitize').
-    $function = $field['module'] . '_field_sanitize';
+    $function = $field['module'] . '__field_sanitize';
     if (drupal_function_exists($function)) {
       $function($obj_type, $object, $field, $instance, $items);
       $object->$field['field_name'] = $items;
diff --git a/modules/field/modules/options/options.module b/modules/field/modules/options/options.module
index 3fc492a..8ca7ace 100644
--- a/modules/field/modules/options/options.module
+++ b/modules/field/modules/options/options.module
@@ -371,7 +371,7 @@ function options_transpose_array_rows_cols($array) {
  * Otherwise, try list_allowed_values() for an options list.
  */
 function options_options($field, $instance) {
-  $function = $field['module'] . '_allowed_values';
+  $function = $field['module'] . '__allowed_values';
   $options = function_exists($function) ? $function($field) : (array) list_allowed_values($field);
   // Add an empty choice for :
   // - non required radios
diff --git a/modules/filter/filter.module b/modules/filter/filter.module
index 1b3c5bc..5e760ac 100644
--- a/modules/filter/filter.module
+++ b/modules/filter/filter.module
@@ -330,7 +330,7 @@ function filter_list_all() {
   $filters = array();
 
   foreach (module_implements('filter') as $module) {
-    $function = $module . '_filter';
+    $function = $module . '__filter';
     $list = $function('list');
     if (isset($list) && is_array($list)) {
       foreach ($list as $delta => $name) {
diff --git a/modules/help/help.test b/modules/help/help.test
index 1f5fdfe..de2a623 100644
--- a/modules/help/help.test
+++ b/modules/help/help.test
@@ -54,7 +54,7 @@ class HelpTestCase extends DrupalWebTestCase {
       // View module help node.
       $this->drupalGet('admin/help/' . $module);
       $this->assertResponse($response);
-      if (drupal_function_exists($module . '_help')) {
+      if (drupal_function_exists($module . '__help')) {
         // View module help node.
         $this->drupalGet('admin/help/' . $module);
         $this->assertResponse($response);
diff --git a/modules/node/node.module b/modules/node/node.module
index 7c19f69..73bc512 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -667,7 +667,7 @@ function node_hook($node, $hook) {
 function node_invoke($node, $hook, $a2 = NULL, $a3 = NULL, $a4 = NULL) {
   if (node_hook($node, $hook)) {
     $base = node_type_get_base($node);
-    $function = $base . '_' . $hook;
+    $function = $base . '__' . $hook;
     return ($function($node, $a2, $a3, $a4));
   }
 }
@@ -790,7 +790,7 @@ function node_load_multiple($nids = array(), $conditions = array(), $reset = FAL
     // Call node type specific callbacks on each typed array of nodes.
     foreach ($typed_nodes as $type => $nodes_of_type) {
       if (node_hook($type, 'load')) {
-        $function = node_type_get_base($type) . '_load';
+        $function = node_type_get_base($type) . '__load';
         $function($nodes_of_type);
       }
     }
@@ -806,7 +806,7 @@ function node_load_multiple($nids = array(), $conditions = array(), $reset = FAL
     // Call hook_node_load(), pass the node types so modules can return early
     // if not acting on types in the array.
     foreach (module_implements('node_load') as $module) {
-      $function = $module . '_node_load';
+      $function = $module . '__node_load';
       $function($queried_nodes, array_keys($typed_nodes));
     }
     $nodes += $queried_nodes;
diff --git a/modules/search/search.admin.inc b/modules/search/search.admin.inc
index a31c404..fdc54d1 100644
--- a/modules/search/search.admin.inc
+++ b/modules/search/search.admin.inc
@@ -39,7 +39,7 @@ function search_admin_settings() {
   $remaining = 0;
   $total = 0;
   foreach (module_implements('search') as $module) {
-    $function = $module . '_search';
+    $function = $module . '__search';
     $status = $function('status');
     $remaining += $status['remaining'];
     $total += $status['total'];
diff --git a/modules/simpletest/tests/field_test.module b/modules/simpletest/tests/field_test.module
index daa2e04..08b3a4d 100644
--- a/modules/simpletest/tests/field_test.module
+++ b/modules/simpletest/tests/field_test.module
@@ -417,7 +417,7 @@ function field_test_field_sanitize($obj_type, $object, $field, $instance, &$item
 /**
  * Implement hook_field_is_empty().
  */
-function field_test_field_is_empty($item, $field) {
+function field_test__field_is_empty($item, $field) {
   return empty($item['value']);
 }
 
diff --git a/modules/system/system.api.php b/modules/system/system.api.php
index 1459b45..3c9f042 100644
--- a/modules/system/system.api.php
+++ b/modules/system/system.api.php
@@ -1622,13 +1622,13 @@ function hook_install() {
  * core API.
  *
  * Examples:
- * - mymodule_update_5200()
+ * - mymodule__update_5200()
  *   - This is the first update to get the database ready to run mymodule 5.x-2.*.
- * - mymodule_update_6000()
+ * - mymodule__update_6000()
  *   - This is the required update for mymodule to run with Drupal core API 6.x.
- * - mymodule_update_6100()
+ * - mymodule__update_6100()
  *   - This is the first update to get the database ready to run mymodule 6.x-1.*.
- * - mymodule_update_6200()
+ * - mymodule__update_6200()
  *   - This is the first update to get the database ready to run mymodule 6.x-2.*.
  *     Users can directly update from 5.x-2.* to 6.x-2.* and they get all 60XX
  *     and 62XX updates, but not 61XX updates, because those reside in the
@@ -1721,7 +1721,7 @@ function hook_update_N(&$sandbox = NULL) {
  */
 function hook_update_last_removed() {
   // We've removed the 5.x-1.x version of mymodule, including database updates.
-  // The next update function is mymodule_update_5200().
+  // The next update function is mymodule__update_5200().
   return 5103;
 }
 
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index ab774eb..228448f 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -1889,7 +1889,7 @@ function taxonomy_field_validate($obj_type, $object, $field, $instance, $items,
 /**
  * Implement hook_field_is_empty().
  */
-function taxonomy_field_is_empty($item, $field) {
+function taxonomy__field_is_empty($item, $field) {
   if (empty($item['value']) && (string) $item['value'] !== '0') {
     return TRUE;
   }
diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc
index 1c44687..163d3e3 100644
--- a/modules/user/user.admin.inc
+++ b/modules/user/user.admin.inc
@@ -963,7 +963,7 @@ function user_modules_installed($modules) {
 function user_modules_uninstalled($modules) {
   $permissions = array();
   foreach ($modules as $module) {
-    if (drupal_function_exists($module . '_permission')) {
+    if (drupal_function_exists($module . '__permission')) {
       $permissions = array_merge($permissions, array_keys(module_invoke($module, 'permission')));
     }
   }
diff --git a/modules/user/user.module b/modules/user/user.module
index 11d9b0b..dcc0e73 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -25,7 +25,7 @@ define('EMAIL_MAX_LENGTH', 64);
  */
 function user_module_invoke($type, &$edit, $account, $category = NULL) {
   foreach (module_implements('user_' . $type) as $module) {
-    $function = $module . '_user_' . $type;
+    $function = $module . '__user_' . $type;
     $function($edit, $account, $category);
   }
 }
@@ -244,7 +244,7 @@ function user_load_multiple($uids = array(), $conditions = array(), $reset = FAL
       // Invoke hook_user_load() on the users loaded from the database
       // and add them to the static cache.
       foreach (module_implements('user_load') as $module) {
-        $function = $module . '_user_load';
+        $function = $module . '__user_load';
         $function($queried_users);
       }
 
@@ -2464,7 +2464,7 @@ function user_filters() {
 
   $options = array();
   foreach (module_implements('permission') as $module) {
-    $function = $module . '_permission';
+    $function = $module . '__permission';
     if ($permissions = $function('permission')) {
       asort($permissions);
       foreach ($permissions as $permission => $description) {
@@ -2959,7 +2959,7 @@ function user_register_validate($form, &$form_state) {
 function _user_forms(&$edit, $account, $category, $hook = 'form') {
   $groups = array();
   foreach (module_implements('user_' . $hook) as $module) {
-    $function = $module . '_user_' . $hook;
+    $function = $module . '__user_' . $hook;
     if ($data = $function($edit, $account, $category)) {
       $groups = array_merge_recursive($data, $groups);
     }
diff --git a/themes/engines/phptemplate/phptemplate.engine b/themes/engines/phptemplate/phptemplate.engine
index 4cd53f7..3251713 100644
--- a/themes/engines/phptemplate/phptemplate.engine
+++ b/themes/engines/phptemplate/phptemplate.engine
@@ -19,7 +19,7 @@ function phptemplate_init($template) {
  * pre-defined by Drupal so that we can use that information if
  * we need to.
  */
-function phptemplate_theme($existing, $type, $theme, $path) {
+function phptemplate__theme($existing, $type, $theme, $path) {
   $templates = drupal_find_theme_functions($existing, array($theme));
   $templates += drupal_find_theme_templates($existing, '.tpl.php', $path);
   return $templates;
diff --git a/update.php b/update.php
index 150823e..ae48bdb 100644
--- a/update.php
+++ b/update.php
@@ -70,7 +70,7 @@ function update_script_selection_form() {
       foreach (array_keys($updates) as $update) {
         if ($update > $schema_version) {
           // The description for an update comes from its Doxygen.
-          $func = new ReflectionFunction($module . '_update_' . $update);
+          $func = new ReflectionFunction($module . '__update_' . $update);
           $description = str_replace(array("\n", '*', '/'), '', $func->getDocComment());
           $pending[] = "$update - $description";
           if (!isset($default)) {

commit 45a80a963f3ee7ed2b234734fb4ace1ea77c47b7
Author: Damien Tournoud <damien@tournoud.net>
Date:   Thu Aug 13 23:10:37 2009 +0200

    #548470, bulk conversion part.

diff --git a/includes/actions.inc b/includes/actions.inc
index c444b60..ae25a46 100644
--- a/includes/actions.inc
+++ b/includes/actions.inc
@@ -109,7 +109,7 @@ function actions_do($action_ids, $object = NULL, $context = NULL, $a1 = NULL, $a
 }
 
 /**
- * Discover all action functions by invoking hook_action_info().
+ * Discover all action functions by invoking hook__action_info().
  *
  * @code
  * mymodule_action_info() {
@@ -168,7 +168,7 @@ function actions_list($reset = FALSE) {
  * Retrieve all action instances from the database.
  *
  * Compare with actions_list() which gathers actions by invoking
- * hook_action_info(). The two are synchronized by visiting
+ * hook__action_info(). The two are synchronized by visiting
  * /admin/structure/actions (when actions.module is enabled) which runs
  * actions_synchronize().
  *
diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 0c85173..23981cb 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -997,7 +997,7 @@ function drupal_serve_page_from_cache(stdClass $cache) {
   $page_compression = variable_get('page_compression', TRUE) && extension_loaded('zlib');
   $return_compressed = $page_compression && isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE;
 
-  // Get headers set in hook_boot(). Keys are lower-case.
+  // Get headers set in hook__boot(). Keys are lower-case.
   $hook_boot_headers = drupal_get_header();
 
   // Headers generated in this function, that may be replaced or unset using
@@ -1007,7 +1007,7 @@ function drupal_serve_page_from_cache(stdClass $cache) {
   foreach ($cache->headers as $name => $value) {
     // In the case of a 304 response, certain headers must be sent, and the
     // remaining may not (see RFC 2616, section 10.3.5). Do not override
-    // headers set in hook_boot().
+    // headers set in hook__boot().
     $name_lower = strtolower($name);
     if (in_array($name_lower, array('content-location', 'expires', 'cache-control', 'vary')) && !isset($hook_boot_headers[$name_lower])) {
       drupal_set_header($name, $value);
@@ -1020,7 +1020,7 @@ function drupal_serve_page_from_cache(stdClass $cache) {
   // proxies with aggressive caching. If the client send a session cookie, do
   // not bother caching the page in a public proxy, because the cached copy
   // will only be served to that particular user due to Vary: Cookie, unless
-  // the Vary header has been replaced or unset in hook_boot() (see below).
+  // the Vary header has been replaced or unset in hook__boot() (see below).
   $max_age = variable_get('cache') == CACHE_AGGRESSIVE && (!isset($_COOKIE[session_name()]) || isset($hook_boot_headers['vary'])) ? variable_get('cache_lifetime', 0) : 0;
   $default_headers['Cache-Control'] = 'public, max-age=' . $max_age;
 
@@ -1059,7 +1059,7 @@ function drupal_serve_page_from_cache(stdClass $cache) {
   // cookie. The Vary header is used to indicates the set of request-header
   // fields that fully determines whether a cache is permitted to use the
   // response to reply to a subsequent request for a given URL without
-  // revalidation. If a Vary header has been set in hook_boot(), it is assumed
+  // revalidation. If a Vary header has been set in hook__boot(), it is assumed
   // that the module knows how to cache the page.
   if (!isset($hook_boot_headers['vary']) && !variable_get('omit_vary_cookie')) {
     header('Vary: Cookie');
@@ -1190,7 +1190,7 @@ function request_uri() {
  *   A link to associate with the message.
  *
  * @see watchdog_severity_levels()
- * @see hook_watchdog()
+ * @see hook__watchdog()
  */
 function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL) {
   global $user, $base_root;
@@ -1503,7 +1503,7 @@ function _drupal_bootstrap($phase) {
 
     case DRUPAL_BOOTSTRAP_PATH:
       require_once DRUPAL_ROOT . '/includes/path.inc';
-      // Initialize $_GET['q'] prior to loading modules and invoking hook_init().
+      // Initialize $_GET['q'] prior to loading modules and invoking hook__init().
       drupal_path_initialize();
       break;
 
@@ -1701,7 +1701,7 @@ function ip_address() {
  * Get the schema definition of a table, or the whole database schema.
  *
  * The returned schema will include any modifications made by any
- * module that implements hook_schema_alter().
+ * module that implements hook__schema_alter().
  *
  * @param $table
  *   The name of the table. If not given, the schema of all tables is returned.
diff --git a/includes/cache.inc b/includes/cache.inc
index 6c8eb09..218cadf 100644
--- a/includes/cache.inc
+++ b/includes/cache.inc
@@ -71,7 +71,7 @@ function cache_get_multiple(array &$cids, $bin = 'cache') {
  * might break functionality or are extremely expensive to recalculate. These
  * will be marked with a (*). The other bins expired automatically by core.
  * Contributed modules can add additional bins and get them expired
- * automatically by implementing hook_flush_caches().
+ * automatically by implementing hook__flush_caches().
  *
  *  - cache: Generic cache storage bin (used for variables, theme registry,
  *  locale date, list of simpletest tests etc).
diff --git a/includes/common.inc b/includes/common.inc
index 55333f5..4f333a5 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -534,7 +534,7 @@ function drupal_http_request($url, array $options = array()) {
     // Mark that this request failed. This will trigger a check of the web
     // server's ability to make outgoing HTTP requests the next time that
     // requirements checking is performed.
-    // @see system_requirements()
+    // @see system__requirements()
     variable_set('drupal_http_request_fails', TRUE);
 
     return $result;
@@ -1131,7 +1131,7 @@ function fix_gpc_magic() {
  * Instead, translation of these data can be done through the locale system,
  * either directly or through helper functions provided by contributed
  * modules.
- * @see hook_locale()
+ * @see hook__locale()
  *
  * During installation, st() is used in place of t(). Code that may be called
  * during installation or during normal operation should use the get_t()
@@ -2270,7 +2270,7 @@ function l($text, $path, array $options = array()) {
  * Perform end-of-request tasks.
  *
  * This function sets the page cache if appropriate, and allows modules to
- * react to the closing of the page by calling hook_exit().
+ * react to the closing of the page by calling hook__exit().
  */
 function drupal_page_footer() {
   global $user;
@@ -2974,12 +2974,12 @@ function drupal_js_defaults($data = NULL) {
  * are added to the page. Then, all settings are output, followed by 'inline'
  * JavaScript code. If running update.php, all preprocessing is disabled.
  *
- * Note that hook_js_alter(&$javascript) is called during this function call
+ * Note that hook__js_alter(&$javascript) is called during this function call
  * to allow alterations of the JavaScript during its presentation. Calls to
- * drupal_add_js() from hook_js_alter() will not be added to the output
- * presentation. The correct way to add JavaScript during hook_js_alter()
+ * drupal_add_js() from hook__js_alter() will not be added to the output
+ * presentation. The correct way to add JavaScript during hook__js_alter()
  * is to add another element to the $javascript array, deriving from
- * drupal_js_defaults(). See locale_js_alter() for an example of this.
+ * drupal_js_defaults(). See locale__js_alter() for an example of this.
  *
  * @param $scope
  *   (optional) The scope for which the JavaScript rules should be returned.
@@ -2990,7 +2990,7 @@ function drupal_js_defaults($data = NULL) {
  * @return
  *   All JavaScript code segments and includes for the scope as HTML tags.
  * @see drupal_add_js()
- * @see locale_js_alter()
+ * @see locale__js_alter()
  * @see drupal_js_defaults()
  */
 function drupal_get_js($scope = 'header', $javascript = NULL) {
@@ -3097,8 +3097,8 @@ function drupal_get_js($scope = 'header', $javascript = NULL) {
  *   of its dependencies could not be added.
  *
  * @see drupal_get_library()
- * @see hook_library()
- * @see hook_library_alter()
+ * @see hook__library()
+ * @see hook__library_alter()
  */
 function drupal_add_library($module, $name) {
   $added = &drupal_static(__FUNCTION__, array());
@@ -3166,8 +3166,8 @@ function drupal_add_library($module, $name) {
  *   The definition of the requested library, if existent, or FALSE.
  *
  * @see drupal_add_library()
- * @see hook_library()
- * @see hook_library_alter()
+ * @see hook__library()
+ * @see hook__library_alter()
  *
  * @todo The purpose of drupal_get_*() is completely different to other page
  *   requisite API functions; find and use a different name.
@@ -3767,7 +3767,7 @@ function drupal_alter($type, &$data) {
   // PHP's func_get_args() always returns copies of params, not references, so
   // drupal_alter() can only manipulate data that comes in via the required first
   // param. For the edge case functions that must pass in an arbitrary number of
-  // alterable parameters (hook_form_alter() being the best example), an array of
+  // alterable parameters (hook__form_alter() being the best example), an array of
   // those params can be placed in the __drupal_alter_by_ref key of the $data
   // array. This is somewhat ugly, but is an unavoidable consequence of a flexible
   // drupal_alter() function, and the limitations of func_get_args().
@@ -3829,7 +3829,7 @@ function drupal_set_page_content($content = NULL) {
  *   - #show_blocks: A marker which suppresses sidebar regions if FALSE (optional).
  *   - #show_messages: Suppress drupal_get_message() items. Used by Batch API (optional).
  *
- * @see hook_page_alter()
+ * @see hook__page_alter()
  * @see element_info('page')
  */
 function drupal_render_page($page) {
@@ -4382,10 +4382,10 @@ function drupal_common_theme() {
  */
 
 /**
- * Create all tables that a module defines in its hook_schema().
+ * Create all tables that a module defines in its hook__schema().
  *
  * Note: This function does not pass the module's schema through
- * hook_schema_alter(). The module's tables will be created exactly as the
+ * hook__schema_alter(). The module's tables will be created exactly as the
  * module defines them.
  *
  * @param $module
@@ -4407,10 +4407,10 @@ function drupal_install_schema($module) {
 }
 
 /**
- * Remove all tables that a module defines in its hook_schema().
+ * Remove all tables that a module defines in its hook__schema().
  *
  * Note: This function does not pass the module's schema through
- * hook_schema_alter(). The module's tables will be created exactly as the
+ * hook__schema_alter(). The module's tables will be created exactly as the
  * module defines them.
  *
  * @param $module
@@ -4438,18 +4438,18 @@ function drupal_uninstall_schema($module) {
  *
  * Use this function only if you explicitly need the original
  * specification of a schema, as it was defined in a module's
- * hook_schema(). No additional default values will be set,
- * hook_schema_alter() is not invoked and these unprocessed
+ * hook__schema(). No additional default values will be set,
+ * hook__schema_alter() is not invoked and these unprocessed
  * definitions won't be cached.
  *
  * This function can be used to retrieve a schema specification in
- * hook_schema(), so it allows you to derive your tables from existing
+ * hook__schema(), so it allows you to derive your tables from existing
  * specifications.
  *
  * It is also used by drupal_install_schema() and
  * drupal_uninstall_schema() to ensure that a module's tables are
  * created exactly as specified without any changes introduced by a
- * module that implements hook_schema_alter().
+ * module that implements hook__schema_alter().
  *
  * @param $module
  *   The module to which the table belongs.
@@ -4471,13 +4471,13 @@ function drupal_get_schema_unprocessed($module, $table = NULL) {
 }
 
 /**
- * Fill in required default values for table definitions returned by hook_schema().
+ * Fill in required default values for table definitions returned by hook__schema().
  *
  * @param $module
- *   The module for which hook_schema() was invoked.
+ *   The module for which hook__schema() was invoked.
  * @param $schema
  *   The schema definition array as it was returned by the module's
- *   hook_schema().
+ *   hook__schema().
  */
 function _drupal_schema_initialize($module, &$schema) {
   // Set the name and module key for all tables.
diff --git a/includes/database/database.inc b/includes/database/database.inc
index d5f6d7a..43ff127 100644
--- a/includes/database/database.inc
+++ b/includes/database/database.inc
@@ -2553,7 +2553,7 @@ function _db_query_process_args($query, $args, $options) {
 /**
  * Helper function for db_rewrite_sql.
  *
- * Collects JOIN and WHERE statements via hook_db_rewrite_sql()
+ * Collects JOIN and WHERE statements via hook__db_rewrite_sql()
  * Decides whether to select primary_key or DISTINCT(primary_key)
  *
  * @todo Remove this function when all code has been converted to query_alter.
diff --git a/includes/database/schema.inc b/includes/database/schema.inc
index fe1e982..b19e525 100644
--- a/includes/database/schema.inc
+++ b/includes/database/schema.inc
@@ -12,15 +12,15 @@
  *
  * A Drupal schema definition is an array structure representing one or
  * more tables and their related keys and indexes. A schema is defined by
- * hook_schema(), which usually lives in a modulename.install file.
+ * hook__schema(), which usually lives in a modulename.install file.
  *
- * By implementing hook_schema() and specifying the tables your module
+ * By implementing hook__schema() and specifying the tables your module
  * declares, you can easily create and drop these tables on all
  * supported database engines. You don't have to deal with the
  * different SQL dialects for table creation and alteration of the
  * supported database engines.
  *
- * hook_schema() should return an array with a key for each table that
+ * hook__schema() should return an array with a key for each table that
  * the module defines.
  *
  * The following keys are defined:
diff --git a/includes/file.inc b/includes/file.inc
index 1ec96cd..ae14e77 100644
--- a/includes/file.inc
+++ b/includes/file.inc
@@ -105,8 +105,8 @@ define('FILE_STATUS_PERMANENT', 1);
  *
  * @return
  *   Returns the entire Drupal stream wrapper registry.
- * @see hook_stream_wrappers()
- * @see hook_stream_wrappers_alter()
+ * @see hook__stream_wrappers()
+ * @see hook__stream_wrappers_alter()
  */
 function file_get_stream_wrappers() {
   $wrappers = &drupal_static(__FUNCTION__);
@@ -490,7 +490,7 @@ function file_check_location($source, $directory = '') {
  * @return
  *  An array of file objects, indexed by fid.
  *
- * @see hook_file_load()
+ * @see hook__file_load()
  * @see file_load()
  */
 function file_load_multiple($fids = array(), $conditions = array()) {
@@ -509,7 +509,7 @@ function file_load_multiple($fids = array(), $conditions = array()) {
   }
   $files = $query->execute()->fetchAllAssoc('fid');
 
-  // Invoke hook_file_load() on the terms loaded from the database
+  // Invoke hook__file_load() on the terms loaded from the database
   // and add them to the static cache.
   if (!empty($files)) {
     foreach (module_implements('file_load') as $module) {
@@ -528,7 +528,7 @@ function file_load_multiple($fids = array(), $conditions = array()) {
  * @return
  *   A file object.
  *
- * @see hook_file_load()
+ * @see hook__file_load()
  * @see file_load_multiple()
  */
 function file_load($fid) {
@@ -547,8 +547,8 @@ function file_load($fid) {
  * @return
  *   The updated file object.
  *
- * @see hook_file_insert()
- * @see hook_file_update()
+ * @see hook__file_insert()
+ * @see hook__file_update()
  */
 function file_save($file) {
   $file = (object)$file;
@@ -602,7 +602,7 @@ function file_save($file) {
  *   File object if the copy is successful, or FALSE in the event of an error.
  *
  * @see file_unmanaged_copy()
- * @see hook_file_copy()
+ * @see hook__file_copy()
  */
 function file_copy($source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
   $source = (object)$source;
@@ -781,7 +781,7 @@ function file_destination($destination, $replace) {
  *   Resulting file object for success, or FALSE in the event of an error.
  *
  * @see file_unmanaged_move()
- * @see hook_file_move()
+ * @see hook__file_move()
  */
 function file_move($source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
   $source = (object)$source;
@@ -949,7 +949,7 @@ function file_create_filename($basename, $directory) {
 /**
  * Delete a file and its database record.
  *
- * If the $force parameter is not TRUE hook_file_references() will be called
+ * If the $force parameter is not TRUE hook__file_references() will be called
  * to determine if the file is being used by any modules. If the file is being
  * used is the delete will be canceled.
  *
@@ -957,15 +957,15 @@ function file_create_filename($basename, $directory) {
  *   A file object.
  * @param $force
  *   Boolean indicating that the file should be deleted even if
- *   hook_file_references() reports that the file is in use.
+ *   hook__file_references() reports that the file is in use.
  * @return mixed
  *   TRUE for success, FALSE in the event of an error, or an array if the file
  *   is being used by another module. The array keys are the module's name and
  *   the values are the number of references.
  *
  * @see file_unmanaged_delete()
- * @see hook_file_references()
- * @see hook_file_delete()
+ * @see hook__file_references()
+ * @see hook__file_delete()
  */
 function file_delete($file, $force = FALSE) {
   $file = (object)$file;
@@ -1245,7 +1245,7 @@ function file_save_upload($source, $validators = array(), $destination = FALSE,
 /**
  * Check that a file meets the criteria specified by the validators.
  *
- * After executing the validator callbacks specified hook_file_validate() will
+ * After executing the validator callbacks specified hook__file_validate() will
  * also be called to allow other modules to report errors about the file.
  *
  * @param $file
@@ -1260,7 +1260,7 @@ function file_save_upload($source, $validators = array(), $destination = FALSE,
  * @return
  *   An array contaning validation error messages.
  *
- * @see hook_file_validate()
+ * @see hook__file_validate()
  */
 function file_validate(&$file, $validators = array()) {
   // Call the validation functions specified by this function's caller.
@@ -1307,7 +1307,7 @@ function file_validate_name_length($file) {
  *   An array. If the file extension is not allowed, it will contain an error
  *   message.
  *
- * @see hook_file_validate()
+ * @see hook__file_validate()
  */
 function file_validate_extensions($file, $extensions) {
   $errors = array();
@@ -1336,7 +1336,7 @@ function file_validate_extensions($file, $extensions) {
  *   An array. If the file size exceeds limits, it will contain an error
  *   message.
  *
- * @see hook_file_validate()
+ * @see hook__file_validate()
  */
 function file_validate_size($file, $file_limit = 0, $user_limit = 0) {
   global $user;
@@ -1365,7 +1365,7 @@ function file_validate_size($file, $file_limit = 0, $user_limit = 0) {
  * @return
  *   An array. If the file is not an image, it will contain an error message.
  *
- * @see hook_file_validate()
+ * @see hook__file_validate()
  */
 function file_validate_is_image($file) {
   $errors = array();
@@ -1400,7 +1400,7 @@ function file_validate_is_image($file) {
  *   An array. If the file is an image and did not meet the requirements, it
  *   will contain an error message.
  *
- * @see hook_file_validate()
+ * @see hook__file_validate()
  */
 function file_validate_image_resolution($file, $maximum_dimensions = 0, $minimum_dimensions = 0) {
   $errors = array();
@@ -1563,13 +1563,13 @@ function file_transfer($source, $headers) {
 /**
  * Menu handler for private file transfers.
  *
- * Call modules that implement hook_file_download() to find out if a file is
+ * Call modules that implement hook__file_download() to find out if a file is
  * accessible and what headers it should be transferred with. If a module
  * returns -1 drupal_access_denied() will be returned. If one or more modules
  * returned headers the download will start with the returned headers. If no
  * modules respond drupal_not_found() will be returned.
  *
- * @see hook_file_download()
+ * @see hook__file_download()
  */
 function file_download() {
   // Merge remainder of arguments from GET['q'], into relative file path.
diff --git a/includes/form.inc b/includes/form.inc
index db9af87..d1e3bdc 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -53,9 +53,9 @@
  *   The unique string identifying the desired form. If a function with that
  *   name exists, it is called to build the form array. Modules that need to
  *   generate the same form (or very similar forms) using different $form_ids
- *   can implement hook_forms(), which maps different $form_id values to the
- *   proper form constructor function. Examples may be found in node_forms(),
- *   search_forms(), and user_forms().
+ *   can implement hook__forms(), which maps different $form_id values to the
+ *   proper form constructor function. Examples may be found in node__forms(),
+ *   search__forms(), and user__forms().
  * @param ...
  *   Any additional arguments are passed on to the functions called by
  *   drupal_get_form(), including the unique form constructor function. For
@@ -88,9 +88,9 @@ function drupal_get_form($form_id) {
  *   The unique string identifying the desired form. If a function with that
  *   name exists, it is called to build the form array. Modules that need to
  *   generate the same form (or very similar forms) using different $form_ids
- *   can implement hook_forms(), which maps different $form_id values to the
- *   proper form constructor function. Examples may be found in node_forms(),
- *   search_forms(), and user_forms().
+ *   can implement hook__forms(), which maps different $form_id values to the
+ *   proper form constructor function. Examples may be found in node__forms(),
+ *   search__forms(), and user__forms().
  * @param &$form_state
  *   An array which stores information about the form. This is passed as a
  *   reference so that the caller can use it to examine what the form changed
@@ -248,9 +248,9 @@ function form_state_defaults() {
  *   The unique string identifying the desired form. If a function
  *   with that name exists, it is called to build the form array.
  *   Modules that need to generate the same form (or very similar forms)
- *   using different $form_ids can implement hook_forms(), which maps
+ *   using different $form_ids can implement hook__forms(), which maps
  *   different $form_id values to the proper form constructor function. Examples
- *   may be found in node_forms(), search_forms(), and user_forms().
+ *   may be found in node__forms(), search__forms(), and user__forms().
  * @param $form_state
  *   A keyed array containing the current state of the form. Most
  *   important is the $form_state['storage'] collection.
@@ -334,9 +334,9 @@ function form_set_cache($form_build_id, $form, $form_state) {
  *   The unique string identifying the desired form. If a function
  *   with that name exists, it is called to build the form array.
  *   Modules that need to generate the same form (or very similar forms)
- *   using different $form_ids can implement hook_forms(), which maps
+ *   using different $form_ids can implement hook__forms(), which maps
  *   different $form_id values to the proper form constructor function. Examples
- *   may be found in node_forms(), search_forms(), and user_forms().
+ *   may be found in node__forms(), search__forms(), and user__forms().
  * @param $form_state
  *   A keyed array containing the current state of the form. Most
  *   important is the $form_state['values'] collection, a tree of data
@@ -396,7 +396,7 @@ function drupal_form_submit($form_id, &$form_state) {
  *   The unique string identifying the desired form. If a function
  *   with that name exists, it is called to build the form array.
  *   Modules that need to generate the same form (or very similar forms)
- *   using different $form_ids can implement hook_forms(), which maps
+ *   using different $form_ids can implement hook__forms(), which maps
  *   different $form_id values to the proper form constructor function.
  * @param $form_state
  *   A keyed array containing the current state of the form.
@@ -404,7 +404,7 @@ function drupal_form_submit($form_id, &$form_state) {
  *   Any additional arguments needed by the unique form constructor
  *   function. Generally, these are any arguments passed into the
  *   drupal_get_form() or drupal_form_submit() functions after the first
- *   argument. If a module implements hook_forms(), it can examine
+ *   argument. If a module implements hook__forms(), it can examine
  *   these additional arguments and conditionally return different
  *   builder functions as well.
  */
@@ -420,7 +420,7 @@ function drupal_retrieve_form($form_id, &$form_state) {
   // If there is, we simply pass the arguments on to it to get the form.
   if (!drupal_function_exists($form_id)) {
     // In cases where many form_ids need to share a central constructor function,
-    // such as the node editing form, modules can implement hook_forms(). It
+    // such as the node editing form, modules can implement hook__forms(). It
     // maps one or more form_ids to the correct constructor functions.
     //
     // We cache the results of that hook to save time, but that only works
@@ -445,7 +445,7 @@ function drupal_retrieve_form($form_id, &$form_state) {
 
   $args = array_merge(array(&$form_state), $args);
 
-  // If $callback was returned by a hook_forms() implementation, call it.
+  // If $callback was returned by a hook__forms() implementation, call it.
   // Otherwise, call the function named after the form id.
   $form = call_user_func_array(isset($callback) ? $callback : $form_id, $args);
   $form['#form_id'] = $form_id;
@@ -560,7 +560,7 @@ function drupal_process_form($form_id, &$form, &$form_state) {
  *   An associative array containing the structure of the form.
  * @param $form_state
  *   A keyed array containing the current state of the form. Passed
- *   in here so that hook_form_alter() calls can use it, as well.
+ *   in here so that hook__form_alter() calls can use it, as well.
  */
 function drupal_prepare_form($form_id, &$form, &$form_state) {
   global $user;
@@ -629,7 +629,7 @@ function drupal_prepare_form($form_id, &$form, &$form_state) {
   // However, drupal_alter() normally supports just one byref parameter. Using
   // the __drupal_alter_by_ref key, we can store any additional parameters
   // that need to be altered, and they'll be split out into additional params
-  // for the hook_form_alter() implementations.
+  // for the hook__form_alter() implementations.
   // @todo: Remove this in Drupal 7.
   $data = &$form;
   $data['__drupal_alter_by_ref'] = array(&$form_state);
@@ -1918,7 +1918,7 @@ function form_process_radios($element) {
  *   $form_state['values']['body_format'] = 1;
  * @endcode
  *
- * @see system_elements(), filter_form()
+ * @see system__elements(), filter_form()
  */
 function form_process_text_format($element) {
   if (isset($element['#text_format'])) {
diff --git a/includes/install.inc b/includes/install.inc
index 995c6fc..9c99a32 100644
--- a/includes/install.inc
+++ b/includes/install.inc
@@ -1000,7 +1000,7 @@ function drupal_check_profile($profile) {
  *
  * @param $requirements
  *   An array of requirements, in the same format as is returned by
- *   hook_requirements().
+ *   hook__requirements().
  * @return
  *   The highest severity in the array.
  */
diff --git a/includes/mail.inc b/includes/mail.inc
index 102a777..70bbf90 100644
--- a/includes/mail.inc
+++ b/includes/mail.inc
@@ -7,8 +7,8 @@
  * Sending an e-mail works with defining an e-mail template (subject, text
  * and possibly e-mail headers) and the replacement values to use in the
  * appropriate places in the template. Processed e-mail templates are
- * requested from hook_mail() from the module sending the e-mail. Any module
- * can modify the composed e-mail message array using hook_mail_alter().
+ * requested from hook__mail() from the module sending the e-mail. Any module
+ * can modify the composed e-mail message array using hook__mail_alter().
  * Finally drupal_mail_send() sends the e-mail, which can be reused
  * if the exact same composed e-mail is to be sent to multiple recipients.
  *
@@ -52,7 +52,7 @@
  * @endcode
  *
  * @param $module
- *   A module name to invoke hook_mail() on. The {$module}_mail() hook will be
+ *   A module name to invoke hook__mail() on. The {$module}_mail() hook will be
  *   called to complete the $message structure which will already contain common
  *   defaults.
  * @param $key
@@ -113,13 +113,13 @@ function drupal_mail($module, $key, $to, $language, $params = array(), $from = N
   $message['headers'] = $headers;
 
   // Build the e-mail (get subject and body, allow additional headers) by
-  // invoking hook_mail() on this module. We cannot use module_invoke() as
-  // we need to have $message by reference in hook_mail().
+  // invoking hook__mail() on this module. We cannot use module_invoke() as
+  // we need to have $message by reference in hook__mail().
   if (drupal_function_exists($function = $module . '__mail')) {
     $function($key, $message, $params);
   }
 
-  // Invoke hook_mail_alter() to allow all modules to alter the resulting e-mail.
+  // Invoke hook__mail_alter() to allow all modules to alter the resulting e-mail.
   drupal_alter('mail', $message);
 
   // Concatenate and wrap the e-mail body.
diff --git a/includes/menu.inc b/includes/menu.inc
index 2d7959e..c9a4bdb 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -17,7 +17,7 @@
  * menu system is fundamental to the creation of complex modules.
  *
  * Drupal's menu system follows a simple hierarchy defined by paths.
- * Implementations of hook_menu() define menu items and assign them to
+ * Implementations of hook__menu() define menu items and assign them to
  * paths (which should be unique). The menu system aggregates these items
  * and determines the menu hierarchy from the paths. For example, if the
  * paths defined were a, a/b, e, a/b/c/d, f/g, and a/b/h, the menu system
@@ -435,7 +435,7 @@ function _menu_load_objects(&$item, &$map) {
         $value = isset($path_map[$index]) ? $path_map[$index] : '';
         if (is_array($function)) {
           // Set up arguments for the load function. These were pulled from
-          // 'load arguments' in the hook_menu() entry, but they need
+          // 'load arguments' in the hook__menu() entry, but they need
           // some processing. In this case the $function is the key to the
           // load_function array, and the value is the list of arguments.
           list($function, $args) = each($function);
diff --git a/includes/module.inc b/includes/module.inc
index d186a3a..a576f98 100644
--- a/includes/module.inc
+++ b/includes/module.inc
@@ -308,7 +308,7 @@ function module_disable($module_list) {
  * The available hooks to implement are explained here in the Hooks section of
  * the developer documentation. The string "hook" is used as a placeholder for
  * the module name is the hook definitions. For example, if the module file is
- * called example.module, then hook_help() as implemented by that module would be
+ * called example.module, then hook__help() as implemented by that module would be
  * defined as example_help().
  */
 
diff --git a/includes/path.inc b/includes/path.inc
index d543ca4..076c0c2 100644
--- a/includes/path.inc
+++ b/includes/path.inc
@@ -6,7 +6,7 @@
  * Functions to handle paths in Drupal, including path aliasing.
  *
  * These functions are not loaded for cached pages, but modules that need
- * to use them in hook_init() or hook exit() can make them available, by
+ * to use them in hook__init() or hook exit() can make them available, by
  * executing "drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);".
  */
 
@@ -344,7 +344,7 @@ function drupal_match_path($path, $patterns) {
  * - http://example.com/path/alias (which is a path alias for node/306) returns
  *   "node/306" as opposed to the path alias.
  *
- * This function is not available in hook_boot() so use $_GET['q'] instead.
+ * This function is not available in hook__boot() so use $_GET['q'] instead.
  * However, be careful when doing that because in the case of Example #3
  * $_GET['q'] will contain "path/alias". If "node/306" is needed, calling
  * drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH) makes this function available.
diff --git a/includes/registry.inc b/includes/registry.inc
index 7946dc3..c2567f7 100644
--- a/includes/registry.inc
+++ b/includes/registry.inc
@@ -44,7 +44,7 @@ function _registry_rebuild() {
   foreach ($modules as &$module) {
     $dir = dirname($module->filepath);
 
-    // Store the module directory for use in hook_registry_files_alter().
+    // Store the module directory for use in hook__registry_files_alter().
     $module->dir = $dir;
 
     if ($module->status) {
diff --git a/includes/theme.inc b/includes/theme.inc
index 6739687..f98f77b 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -262,7 +262,7 @@ function drupal_theme_rebuild() {
 }
 
 /**
- * Process a single implementation of hook_theme().
+ * Process a single implementation of hook__theme().
  *
  * @param $cache
  *   The theme registry that will eventually be cached; It is an associative
@@ -271,30 +271,30 @@ function drupal_theme_rebuild() {
  *   - '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'
+ *     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.
+ *     hook__theme() or defaults to $path.
  *   - 'arguments': The arguments for this theme hook as defined in
- *     hook_theme(). If there is more than one implementation and 'arguments' is
+ *     hook__theme(). If there is more than one implementation and 'arguments' is
  *     not specified in a later one, then the previous definition is kept.
  *   - 'theme paths': The paths where implementations of a theme hook can be
  *     found. Its definition is similarly inherited like 'arguments'. Each time
  *     _theme_process_registry() is called for this theme hook, either the
- *     'path' key from hook_theme() (if defined) or $path is added.
+ *     'path' key from hook__theme() (if defined) or $path is added.
  *   - 'preprocess functions': See theme() for detailed documentation.
  *   - 'process functions': See theme() for detailed documentation.
  * @param $name
  *   The name of the module, theme engine, base theme engine, theme or base
- *   theme implementing hook_theme().
+ *   theme implementing hook__theme().
  * @param $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
+ *   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.
@@ -306,7 +306,7 @@ function drupal_theme_rebuild() {
  *
  * @see theme()
  * @see _theme_process_registry()
- * @see hook_theme()
+ * @see hook__theme()
  * @see list_themes()
  */
 function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
@@ -727,7 +727,7 @@ function theme() {
       // If a theme function that does not expect a renderable array is called
       // with a renderable array as the only argument (via drupal_render), then
       // we take the arguments from the properties of the renderable array. If
-      // missing, use hook_theme() defaults.
+      // missing, use hook__theme() defaults.
       if (isset($args[0]) && is_array($args[0]) && isset($args[0]['#theme']) && count($info['arguments']) > 1) {
         $new_args = array();
         foreach ($info['arguments'] as $name => $default) {
@@ -1175,7 +1175,7 @@ function theme_render_template($template_file, $variables) {
  * to make it simple for themes to identify and override the behavior
  * for these calls.
  *
- * The theme hooks are registered via hook_theme(), which returns an
+ * The theme hooks are registered via hook__theme(), which returns an
  * array of arrays with information about the hook. It describes the
  * arguments the function or template will need, and provides
  * defaults for the template in case they are not filled in. If the default
@@ -1183,7 +1183,7 @@ function theme_render_template($template_file, $variables) {
  *
  * Each module should provide a default implementation for theme_hooks that
  * it registers. This implementation may be either a function or a template;
- * if it is a function it must be specified via hook_theme(). By convention,
+ * if it is a function it must be specified via hook__theme(). By convention,
  * default implementations of theme hooks are named theme_HOOK. Default
  * template implementations are stored in the module directory.
  *
@@ -1198,7 +1198,7 @@ function theme_render_template($template_file, $variables) {
  * implement their own version of theme hooks, either as functions or templates.
  * These implementations will be used instead of the default implementation. If
  * using a pure .theme without an engine, the .theme is required to implement
- * its own version of hook_theme() to tell Drupal what it is implementing;
+ * its own version of hook__theme() to tell Drupal what it is implementing;
  * themes utilizing an engine will have their well-named theming functions
  * automatically registered for them. While this can vary based upon the theme
  * engine, the standard set by phptemplate is that theme functions should be
@@ -1209,7 +1209,7 @@ function theme_render_template($template_file, $variables) {
  * The theme system is described and defined in theme.inc.
  *
  * @see theme()
- * @see hook_theme()
+ * @see hook__theme()
  */
 
 /**
diff --git a/includes/theme.maintenance.inc b/includes/theme.maintenance.inc
index 51c6c1e..e1e6b28 100644
--- a/includes/theme.maintenance.inc
+++ b/includes/theme.maintenance.inc
@@ -63,7 +63,7 @@ function _drupal_maintenance_theme() {
   }
   _drupal_theme_initialize($themes[$theme], array_reverse($base_theme), '_theme_load_offline_registry');
 
-  // These are usually added from system_init() -except maintenance.css.
+  // These are usually added from system__init() -except maintenance.css.
   // When the database is inactive it's not called so we add it here.
   drupal_add_css(drupal_get_path('module', 'system') . '/defaults.css');
   drupal_add_css(drupal_get_path('module', 'system') . '/system.css');
diff --git a/install.php b/install.php
index 092b350..6ee520b 100644
--- a/install.php
+++ b/install.php
@@ -1618,7 +1618,7 @@ function _install_configure_form(&$form_state, &$install_state) {
   );
 
   // Allow the profile to alter this form. $form_state isn't available
-  // here, but to conform to the hook_form_alter() signature, we pass
+  // here, but to conform to the hook__form_alter() signature, we pass
   // an empty array.
   $hook_form_alter = $install_state['parameters']['profile'] . '__form_alter';
   if (function_exists($hook_form_alter)) {
diff --git a/modules/aggregator/aggregator.admin.inc b/modules/aggregator/aggregator.admin.inc
index c9260a3..2f8f853 100644
--- a/modules/aggregator/aggregator.admin.inc
+++ b/modules/aggregator/aggregator.admin.inc
@@ -10,7 +10,7 @@
  * Menu callback; displays the aggregator administration page.
  */
 function aggregator_admin_overview() {
-  return aggregator_view();
+  return aggregator__view();
 }
 
 /**
@@ -19,7 +19,7 @@ function aggregator_admin_overview() {
  * @return
  *   The page HTML.
  */
-function aggregator_view() {
+function aggregator__view() {
   $result = db_query('SELECT f.*, COUNT(i.iid) AS items FROM {aggregator_feed} f LEFT JOIN {aggregator_item} i ON f.fid = i.fid GROUP BY f.fid, f.title, f.url, f.refresh, f.checked, f.link, f.description, f.hash, f.etag, f.modified, f.image, f.block ORDER BY f.title');
 
   $output = '<h3>' . t('Feed overview') . '</h3>';
diff --git a/modules/aggregator/aggregator.api.php b/modules/aggregator/aggregator.api.php
index 539dbc9..c207043 100644
--- a/modules/aggregator/aggregator.api.php
+++ b/modules/aggregator/aggregator.api.php
@@ -28,13 +28,13 @@
  *   $feed->url contains the link to the feed. Download the data at the URL
  *   and expose it to other modules by attaching it to $feed->source_string.
  *
- * @see hook_aggregator_fetch_info()
- * @see hook_aggregator_parse()
- * @see hook_aggregator_process()
+ * @see hook__aggregator_fetch_info()
+ * @see hook__aggregator_parse()
+ * @see hook__aggregator_process()
  *
  * @ingroup aggregator
  */
-function hook_aggregator_fetch($feed) {
+function hook__aggregator_fetch($feed) {
   $feed->source_string = mymodule_fetch($feed->url);
 }
 
@@ -47,18 +47,18 @@ function hook_aggregator_fetch($feed) {
  * readable name of the fetcher and as description a brief (40 to 80 characters)
  * explanation of the fetcher's functionality.
  *
- * This hook is only called if your module implements hook_aggregator_fetch().
+ * This hook is only called if your module implements hook__aggregator_fetch().
  * If this hook is not implemented aggregator will use your module's file name
  * as title and there will be no description.
  *
  * @return
  *   An associative array defining a title and a description string.
  *
- * @see hook_aggregator_fetch()
+ * @see hook__aggregator_fetch()
  *
  * @ingroup aggregator
  */
-function hook_aggregator_fetch_info() {
+function hook__aggregator_fetch_info() {
   return array(
     'title' => t('Default fetcher'),
     'description' => t('Default fetcher for resources available by URL.'),
@@ -94,13 +94,13 @@ function hook_aggregator_fetch_info() {
  *   GUID (string) - RSS/Atom global unique identifier
  *   LINK (string) - the feed item's URL
  *
- * @see hook_aggregator_parse_info()
- * @see hook_aggregator_fetch()
- * @see hook_aggregator_process()
+ * @see hook__aggregator_parse_info()
+ * @see hook__aggregator_fetch()
+ * @see hook__aggregator_process()
  *
  * @ingroup aggregator
  */
-function hook_aggregator_parse($feed) {
+function hook__aggregator_parse($feed) {
   $feed->items = mymodule_parse($feed->source_string);
 }
 
@@ -113,18 +113,18 @@ function hook_aggregator_parse($feed) {
  * as description a brief (40 to 80 characters) explanation of the parser's
  * functionality.
  *
- * This hook is only called if your module implements hook_aggregator_parse().
+ * This hook is only called if your module implements hook__aggregator_parse().
  * If this hook is not implemented aggregator will use your module's file name
  * as title and there will be no description.
  *
  * @return
  *   An associative array defining a title and a description string.
  *
- * @see hook_aggregator_parse()
+ * @see hook__aggregator_parse()
  *
  * @ingroup aggregator
  */
-function hook_aggregator_parse_info() {
+function hook__aggregator_parse_info() {
   return array(
     'title' => t('Default parser'),
     'description' => t('Default parser for RSS, Atom and RDF feeds.'),
@@ -146,17 +146,17 @@ function hook_aggregator_parse_info() {
  * @param $feed
  *   The $feed object that describes the resource to be processed. $feed->items
  *   contains an array of feed items downloaded and parsed at the parsing
- *   stage. See hook_aggregator_parse() for the basic format of a single item
+ *   stage. See hook__aggregator_parse() for the basic format of a single item
  *   in the $feed->items array. For the exact format refer to the particular
  *   parser in use.
  *
- * @see hook_aggregator_process_info()
- * @see hook_aggregator_fetch()
- * @see hook_aggregator_parse()
+ * @see hook__aggregator_process_info()
+ * @see hook__aggregator_fetch()
+ * @see hook__aggregator_parse()
  *
  * @ingroup aggregator
  */
-function hook_aggregator_process($feed) {
+function hook__aggregator_process($feed) {
   foreach ($feed->items as $item) {
     mymodule_save($item);
   }
@@ -172,17 +172,17 @@ function hook_aggregator_process($feed) {
  * functionality.
  *
  * This hook is only called if your module implements
- * hook_aggregator_process(). If this hook is not implemented aggregator
+ * hook__aggregator_process(). If this hook is not implemented aggregator
  * will use your module's file name as title and there will be no description.
  *
  * @return
  *   An associative array defining a title and a description string.
  *
- * @see hook_aggregator_process()
+ * @see hook__aggregator_process()
  *
  * @ingroup aggregator
  */
-function hook_aggregator_process_info($feed) {
+function hook__aggregator_process_info($feed) {
   return array(
     'title' => t('Default processor'),
     'description' => t('Creates lightweight records of feed items.'),
@@ -196,7 +196,7 @@ function hook_aggregator_process_info($feed) {
  * Aggregator calls this hook if either a feed is deleted or a user clicks on
  * "remove items".
  *
- * If your module stores feed items for example on hook_aggregator_process() it
+ * If your module stores feed items for example on hook__aggregator_process() it
  * is recommended to implement this hook and to remove data related to $feed
  * when called.
  *
@@ -205,7 +205,7 @@ function hook_aggregator_process_info($feed) {
  *
  * @ingroup aggregator
  */
-function hook_aggregator_remove($feed) {
+function hook__aggregator_remove($feed) {
   mymodule_remove_items($feed->fid);
 }
 
diff --git a/modules/aggregator/aggregator.fetcher.inc b/modules/aggregator/aggregator.fetcher.inc
index b936f3a..f886d35 100644
--- a/modules/aggregator/aggregator.fetcher.inc
+++ b/modules/aggregator/aggregator.fetcher.inc
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_aggregator_fetch_info().
+ * Implement hook__aggregator_fetch_info().
  */
-function aggregator_aggregator_fetch_info() {
+function aggregator__aggregator_fetch_info() {
   return array(
     'title' => t('Default fetcher'),
     'description' => t('Downloads data from a URL using Drupal\'s HTTP request handler.'),
@@ -17,9 +17,9 @@ function aggregator_aggregator_fetch_info() {
 }
 
 /**
- * Implement hook_aggregator_fetch().
+ * Implement hook__aggregator_fetch().
  */
-function aggregator_aggregator_fetch($feed) {
+function aggregator__aggregator_fetch($feed) {
   $feed->source_string = FALSE;
 
   // Generate conditional GET headers.
diff --git a/modules/aggregator/aggregator.install b/modules/aggregator/aggregator.install
index faaa03f..43dc7a5 100644
--- a/modules/aggregator/aggregator.install
+++ b/modules/aggregator/aggregator.install
@@ -7,17 +7,17 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function aggregator_install() {
+function aggregator__install() {
   // Create tables.
   drupal_install_schema('aggregator');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function aggregator_uninstall() {
+function aggregator__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('aggregator');
 
@@ -32,9 +32,9 @@ function aggregator_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function aggregator_schema() {
+function aggregator__schema() {
   $schema['aggregator_category'] = array(
     'description' => 'Stores categories for aggregator feeds and feed items.',
     'fields' => array(
diff --git a/modules/aggregator/aggregator.module b/modules/aggregator/aggregator.module
index 7247ffd..4acbf93 100644
--- a/modules/aggregator/aggregator.module
+++ b/modules/aggregator/aggregator.module
@@ -12,9 +12,9 @@
 define('AGGREGATOR_CLEAR_NEVER', 0);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function aggregator_help($path, $arg) {
+function aggregator__help($path, $arg) {
   switch ($path) {
     case 'admin/help#aggregator':
       $output = '<p>' . t('The aggregator is a powerful on-site syndicator and news reader that gathers fresh content from RSS-, RDF-, and Atom-based feeds made available across the web. Thousands of sites (particularly news sites and blogs) publish their latest headlines and posts in feeds, using a number of standardized XML-based formats. Formats supported by the aggregator include <a href="@rss">RSS</a>, <a href="@rdf">RDF</a>, and <a href="@atom">Atom</a>.', array('@rss' => 'http://cyber.law.harvard.edu/rss/', '@rdf' => 'http://www.w3.org/RDF/', '@atom' => 'http://www.atomenabled.org')) . '</p>';
@@ -35,9 +35,9 @@ function aggregator_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function aggregator_theme() {
+function aggregator__theme() {
   return array(
     'aggregator_wrapper' => array(
       'arguments' => array('content' => NULL),
@@ -83,9 +83,9 @@ function aggregator_theme() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function aggregator_menu() {
+function aggregator__menu() {
   $items['admin/settings/aggregator'] = array(
     'title' => 'Feed aggregator',
     'description' => "Configure which content your site aggregates from other sites, how often it polls them, and how they're categorized.",
@@ -253,9 +253,9 @@ function _aggregator_category_title($category) {
 }
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function aggregator_init() {
+function aggregator__init() {
   drupal_add_css(drupal_get_path('module', 'aggregator') . '/aggregator.css');
 }
 
@@ -270,9 +270,9 @@ function _aggregator_has_categories() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function aggregator_permission() {
+function aggregator__permission() {
   return array(
     'administer news feeds' => array(
       'title' => t('Administer news feeds'),
@@ -286,11 +286,11 @@ function aggregator_permission() {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  *
  * Checks news feeds for updates once their refresh interval has elapsed.
  */
-function aggregator_cron() {
+function aggregator__cron() {
   $result = db_query('SELECT * FROM {aggregator_feed} WHERE checked + refresh < :time AND refresh != :never', array(
     ':time' => REQUEST_TIME,
     ':never' => AGGREGATOR_CLEAR_NEVER
@@ -301,9 +301,9 @@ function aggregator_cron() {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function aggregator_block_list() {
+function aggregator__block_list() {
   $block = array();
   $result = db_query('SELECT cid, title FROM {aggregator_category} ORDER BY title');
   foreach ($result as $category) {
@@ -317,9 +317,9 @@ function aggregator_block_list() {
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function aggregator_block_configure($delta = '') {
+function aggregator__block_configure($delta = '') {
   list($type, $id) = explode('-', $delta);
   if ($type == 'category') {
     $value = db_query('SELECT block FROM {aggregator_category} WHERE cid = :cid', array(':cid' => $id))->fetchField();
@@ -334,9 +334,9 @@ function aggregator_block_configure($delta = '') {
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function aggregator_block_save($delta = '', $edit = array()) {
+function aggregator__block_save($delta = '', $edit = array()) {
   list($type, $id) = explode('-', $delta);
   if ($type == 'category') {
     db_update('aggregator_category')
@@ -347,11 +347,11 @@ function aggregator_block_save($delta = '', $edit = array()) {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Generates blocks for the latest news items in each category and feed.
  */
-function aggregator_block_view($delta = '') {
+function aggregator__block_view($delta = '') {
   if (user_access('access news feeds')) {
     $block = array();
     list($type, $id) = explode('-', $delta);
@@ -514,7 +514,7 @@ function aggregator_save_feed($edit) {
  *   An object describing the feed to be cleared.
  */
 function aggregator_remove($feed) {
-  // Call hook_aggregator_remove() on all modules.
+  // Call hook__aggregator_remove() on all modules.
   module_invoke_all('aggregator_remove', $feed);
   // Reset feed.
   db_merge('aggregator_feed')
diff --git a/modules/aggregator/aggregator.parser.inc b/modules/aggregator/aggregator.parser.inc
index ffa54e4..133ba09 100644
--- a/modules/aggregator/aggregator.parser.inc
+++ b/modules/aggregator/aggregator.parser.inc
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_aggregator_parse_info().
+ * Implement hook__aggregator_parse_info().
  */
-function aggregator_aggregator_parse_info() {
+function aggregator__aggregator_parse_info() {
   return array(
     'title' => t('Default parser'),
     'description' => t('Parses RSS, Atom and RDF feeds.'),
@@ -17,9 +17,9 @@ function aggregator_aggregator_parse_info() {
 }
 
 /**
- * Implement hook_aggregator_parse().
+ * Implement hook__aggregator_parse().
  */
-function aggregator_aggregator_parse($feed) {
+function aggregator__aggregator_parse($feed) {
   global $channel, $image;
 
   // Filter the input data.
diff --git a/modules/aggregator/aggregator.processor.inc b/modules/aggregator/aggregator.processor.inc
index 2c4a786..fa6a568 100644
--- a/modules/aggregator/aggregator.processor.inc
+++ b/modules/aggregator/aggregator.processor.inc
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_aggregator_process_info().
+ * Implement hook__aggregator_process_info().
  */
-function aggregator_aggregator_process_info() {
+function aggregator__aggregator_process_info() {
   return array(
     'title' => t('Default processor'),
     'description' => t('Creates lightweight records from feed items.'),
@@ -17,9 +17,9 @@ function aggregator_aggregator_process_info() {
 }
 
 /**
- * Implement hook_aggregator_process().
+ * Implement hook__aggregator_process().
  */
-function aggregator_aggregator_process($feed) {
+function aggregator__aggregator_process($feed) {
   if (is_object($feed)) {
     if (is_array($feed->items)) {
       foreach ($feed->items as $item) {
@@ -45,9 +45,9 @@ function aggregator_aggregator_process($feed) {
 }
 
 /**
- * Implement hook_aggregator_remove().
+ * Implement hook__aggregator_remove().
  */
-function aggregator_aggregator_remove($feed) {
+function aggregator__aggregator_remove($feed) {
   $iids = db_query('SELECT iid FROM {aggregator_item} WHERE fid = :fid', array(':fid' => $feed->fid))->fetchCol();
   if ($iids) {
     db_delete('aggregator_category_item')
diff --git a/modules/aggregator/tests/aggregator_test.module b/modules/aggregator/tests/aggregator_test.module
index 60501c4..35a94e2 100644
--- a/modules/aggregator/tests/aggregator_test.module
+++ b/modules/aggregator/tests/aggregator_test.module
@@ -2,9 +2,9 @@
 // $Id: aggregator_test.module,v 1.3 2009-05-27 18:33:54 dries Exp $
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function aggregator_test_menu() {
+function aggregator_test__menu() {
   $items['aggregator/test-feed'] = array(
     'title' => 'Test feed static last modified date',
     'description' => "A cached test feed with a static last modified date.",
diff --git a/modules/block/block.admin.inc b/modules/block/block.admin.inc
index 1fc4a6a..62aee35 100644
--- a/modules/block/block.admin.inc
+++ b/modules/block/block.admin.inc
@@ -7,7 +7,7 @@
  */
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function block_form_system_performance_settings_alter(&$form, &$form_state) {
   $disabled = count(module_implements('node_grants'));
diff --git a/modules/block/block.api.php b/modules/block/block.api.php
index 44010a5..2d84e55 100644
--- a/modules/block/block.api.php
+++ b/modules/block/block.api.php
@@ -52,7 +52,7 @@
  *
  * For a detailed usage example, see block_example.module.
  */
-function hook_block_list() {
+function hook__block_list() {
   $blocks['exciting'] = array(
     'info' => t('An exciting block provided by Mymodule.'),
     'weight' => 0,
@@ -80,7 +80,7 @@ function hook_block_list() {
  *   Which block to return. This is a descriptive string used to identify
  *   blocks within each module and also within the theme system.
  *   The $delta for each block is defined within the array that your module
- *   returns when the hook_block_list() implementation is called.
+ *   returns when the hook__block_list() implementation is called.
  * @return
  *   Optionally return the configuration form.
  *
@@ -89,7 +89,7 @@ function hook_block_list() {
  *
  * For a detailed usage example, see block_example.module.
  */
-function hook_block_configure($delta = '') {
+function hook__block_configure($delta = '') {
   if ($delta == 'exciting') {
     $form['items'] = array(
       '#type' => 'select',
@@ -112,7 +112,7 @@ function hook_block_configure($delta = '') {
  *   Which block to save the settings for. This is a descriptive string used
  *   to identify blocks within each module and also within the theme system.
  *   The $delta for each block is defined within the array that your module
- *   returns when the hook_block_list() implementation is called.
+ *   returns when the hook__block_list() implementation is called.
  * @param $edit
  *   The submitted form data from the configuration form.
  *
@@ -121,7 +121,7 @@ function hook_block_configure($delta = '') {
  *
  * For a detailed usage example, see block_example.module.
  */
-function hook_block_save($delta = '', $edit = array()) {
+function hook__block_save($delta = '', $edit = array()) {
   if ($delta == 'exciting') {
     variable_set('mymodule_block_items', $edit['items']);
   }
@@ -138,7 +138,7 @@ function hook_block_save($delta = '', $edit = array()) {
  *   Which block to return. This is a descriptive string used to identify
  *   blocks within each module and also within the theme system.
  *   The $delta for each block is defined within the array that your module
- *   returns when the hook_block_list() implementation is called.
+ *   returns when the hook__block_list() implementation is called.
  * @return
  *   An array which must define a 'subject' element and a 'content' element
  *   defining the block indexed by $delta.
@@ -153,7 +153,7 @@ function hook_block_save($delta = '', $edit = array()) {
  *
  * For a detailed usage example, see block_example.module.
  */
-function hook_block_view($delta = '') {
+function hook__block_view($delta = '') {
   switch ($delta) {
     case 'exciting':
       $block = array(
@@ -179,7 +179,7 @@ function hook_block_view($delta = '') {
  * are rendered after the modules have had a chance to manipulate the block
  * list.
  * Alternatively you can set $block->content here, which will override the
- * content of the block and prevent hook_block_view() from running.
+ * content of the block and prevent hook__block_view() from running.
  *
  * @param $blocks
  *   An array of $blocks, keyed by $bid
@@ -187,7 +187,7 @@ function hook_block_view($delta = '') {
  * This example shows how to achieve language specific visibility setting for
  * blocks.
  */
-function hook_block_list_alter(&$blocks) {
+function hook__block_list_alter(&$blocks) {
   global $language, $theme_key;
 
   $result = db_query('SELECT module, delta, language FROM {my_table}');
diff --git a/modules/block/block.install b/modules/block/block.install
index e493ecc..4978316 100644
--- a/modules/block/block.install
+++ b/modules/block/block.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function block_schema() {
+function block__schema() {
   $schema['block'] = array(
     'description' => 'Stores block settings, such as region and visibility settings.',
     'fields' => array(
@@ -202,13 +202,13 @@ function block_schema() {
 }
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function block_install() {
+function block__install() {
   drupal_install_schema('block');
 
   // Block should go first so that other modules can alter its output
-  // during hook_page_alter(). Almost everything on the page is a block,
+  // during hook__page_alter(). Almost everything on the page is a block,
   // so before block module runs, there will not be much to alter.
   db_update('system')
     ->fields(array('weight' => -5))
@@ -217,9 +217,9 @@ function block_install() {
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function block_uninstall() {
+function block__uninstall() {
   drupal_uninstall_schema('block');
 }
 
@@ -227,7 +227,7 @@ function block_uninstall() {
  * Set system.weight to a low value for block module.
  *
  * Block should go first so that other modules can alter its output
- * during hook_page_alter(). Almost everything on the page is a block,
+ * during hook__page_alter(). Almost everything on the page is a block,
  * so before block module runs, there will not be much to alter.
  */
 function block_update_7000() {
diff --git a/modules/block/block.module b/modules/block/block.module
index ef3d421..f14f559 100644
--- a/modules/block/block.module
+++ b/modules/block/block.module
@@ -15,7 +15,7 @@ define('BLOCK_REGION_NONE', -1);
  * Constants defining cache granularity for blocks.
  *
  * Modules specify the caching patterns for their blocks using binary
- * combinations of these constants in their hook_block_list():
+ * combinations of these constants in their hook__block_list():
  *   $block[delta]['cache'] = BLOCK_CACHE_PER_ROLE | BLOCK_CACHE_PER_PAGE;
  * BLOCK_CACHE_PER_ROLE is used as a default when no caching pattern is
  * specified.
@@ -61,9 +61,9 @@ define('BLOCK_CACHE_PER_PAGE', 0x0004);
 define('BLOCK_CACHE_GLOBAL', 0x0008);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function block_help($path, $arg) {
+function block__help($path, $arg) {
   switch ($path) {
     case 'admin/help#block':
       $output = '<p>' . t('Blocks are boxes of content rendered into an area, or region, of a web page. The default theme Garland, for example, implements the regions "left sidebar", "right sidebar", "content", "header", and "footer", and a block may appear in any one of these areas. The <a href="@blocks">blocks administration page</a> provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions.', array('@blocks' => url('admin/structure/block'))) . '</p>';
@@ -88,9 +88,9 @@ function block_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function block_theme() {
+function block__theme() {
   return array(
     'block' => array(
       'arguments' => array('elements' => NULL),
@@ -105,9 +105,9 @@ function block_theme() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function block_permission() {
+function block__permission() {
   return array(
     'administer blocks' => array(
       'title' => t('Administer blocks'),
@@ -117,9 +117,9 @@ function block_permission() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function block_menu() {
+function block__menu() {
   $items['admin/structure/block'] = array(
     'title' => 'Blocks',
     'description' => 'Configure what block content appears in your site\'s sidebars and other regions.',
@@ -181,9 +181,9 @@ function _block_themes_access($theme) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function block_block_list() {
+function block__block_list() {
   $blocks = array();
 
   $result = db_query('SELECT bid, info FROM {box} ORDER BY info');
@@ -196,9 +196,9 @@ function block_block_list() {
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function block_block_configure($delta = 0, $edit = array()) {
+function block__block_configure($delta = 0, $edit = array()) {
   $box = array('format' => FILTER_FORMAT_DEFAULT);
   if ($delta) {
     $box = block_box_get($delta);
@@ -207,29 +207,29 @@ function block_block_configure($delta = 0, $edit = array()) {
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function block_block_save($delta = 0, $edit = array()) {
+function block__block_save($delta = 0, $edit = array()) {
   block_box_save($edit, $delta);
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Generates the administrator-defined blocks for display.
  */
-function block_block_view($delta = 0, $edit = array()) {
+function block__block_view($delta = 0, $edit = array()) {
   $block = db_query('SELECT body, format FROM {box} WHERE bid = :bid', array(':bid' => $delta))->fetchObject();
   $data['content'] = check_markup($block->body, $block->format, '', FALSE);
   return $data;
 }
 
 /**
- * Implement hook_page_alter().
+ * Implement hook__page_alter().
  *
  * Render blocks into their regions.
  */
-function block_page_alter($page) {
+function block__page_alter($page) {
   global $theme;
 
   // The theme system might not yet be initialized. We need $theme.
@@ -400,7 +400,7 @@ function block_box_form($edit = array()) {
     '#description' => t('The content of the block as shown to the user.'),
     '#required' => TRUE,
     '#weight' => -17,
-    '#access' => filter_access($edit['format']),
+    '#access' => filter__access($edit['format']),
   );
 
   return $form;
@@ -419,9 +419,9 @@ function block_box_save($edit, $delta) {
 }
 
 /**
- * Implement hook_user_form().
+ * Implement hook__user_form().
  */
-function block_user_form(&$edit, $account, $category) {
+function block__user_form(&$edit, $account, $category) {
   if ($category == 'account') {
     $rids = array_keys($account->roles);
     $result = db_query("SELECT DISTINCT b.* FROM {block} b LEFT JOIN {block_role} r ON b.module = r.module AND b.delta = r.delta WHERE b.status = 1 AND b.custom <> 0 AND (r.rid IN (:rids) OR r.rid IS NULL) ORDER BY b.weight, b.module", array(':rids' => $rids));
@@ -452,9 +452,9 @@ function block_user_form(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_user_validate().
+ * Implement hook__user_validate().
  */
-function block_user_validate(&$edit, $account, $category) {
+function block__user_validate(&$edit, $account, $category) {
   if (empty($edit['block'])) {
     $edit['block'] = array();
   }
@@ -462,7 +462,7 @@ function block_user_validate(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function block_form_system_themes_form_alter(&$form, &$form_state) {
   // This function needs to fire before the theme changes are recorded in the
@@ -586,12 +586,12 @@ function _block_load_blocks() {
 }
 
 /**
- * Implement hook_block_list_alter().
+ * Implement hook__block_list_alter().
  *
  * Check the page, user role, content type and user specific visibilty settings.
  * Remove the block if the visibility conditions are not met.
  */
-function block_block_list_alter(&$blocks) {
+function block__block_list_alter(&$blocks) {
   global $user, $theme_key;
 
   // Build an array of roles for each block.
@@ -805,9 +805,9 @@ function _block_get_cache_id($block) {
 }
 
 /**
- * Implement hook_flush_caches().
+ * Implement hook__flush_caches().
  */
-function block_flush_caches() {
+function block__flush_caches() {
   return array('cache_block');
 }
 
diff --git a/modules/blog/blog.module b/modules/blog/blog.module
index 01c61b2..3d99a4e 100644
--- a/modules/blog/blog.module
+++ b/modules/blog/blog.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_node_info().
+ * Implement hook__node_info().
  */
-function blog_node_info() {
+function blog__node_info() {
   return array(
     'blog' => array(
       'name' => t('Blog entry'),
@@ -20,16 +20,16 @@ function blog_node_info() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function blog_permission() {
+function blog__permission() {
   return node_list_permissions('blog');
 }
 
 /**
- * Implement hook_access().
+ * Implement hook__access().
  */
-function blog_access($op, $node, $account) {
+function blog__access($op, $node, $account) {
   switch ($op) {
     case 'create':
       // Anonymous users cannot post even if they have the permission.
@@ -42,9 +42,9 @@ function blog_access($op, $node, $account) {
 }
 
 /**
- * Implement hook_user_view().
+ * Implement hook__user_view().
  */
-function blog_user_view($account) {
+function blog__user_view($account) {
   if (user_access('create blog content', $account)) {
     $account->content['summary']['blog'] =  array(
       '#type' => 'user_profile_item',
@@ -56,9 +56,9 @@ function blog_user_view($account) {
 }
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function blog_help($path, $arg) {
+function blog__help($path, $arg) {
   switch ($path) {
     case 'admin/help#blog':
       $output  = '<p>' . t('The blog module allows registered users to maintain an online journal, or <em>blog</em>. Blogs are made up of individual <em>blog entries</em>, and the blog entries are most often displayed in descending order by creation time.') . '</p>';
@@ -70,16 +70,16 @@ function blog_help($path, $arg) {
 }
 
 /**
- * Implement hook_form().
+ * Implement hook__form().
  */
-function blog_form($node, $form_state) {
-  return node_content_form($node, $form_state);
+function blog__form($node, $form_state) {
+  return node_content__form($node, $form_state);
 }
 
 /**
- * Implement hook_view().
+ * Implement hook__view().
  */
-function blog_view($node, $build_mode) {
+function blog__view($node, $build_mode) {
   if ((bool)menu_get_object()) {
     // Breadcrumb navigation.
     drupal_set_breadcrumb(array(l(t('Home'), NULL), l(t('Blogs'), 'blog'), l(t("!name's blog", array('!name' => $node->name)), 'blog/' . $node->uid)));
@@ -88,9 +88,9 @@ function blog_view($node, $build_mode) {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function blog_node_view($node, $build_mode = 'full') {
+function blog__node_view($node, $build_mode = 'full') {
   if ($build_mode != 'rss') {
     if ($node->type == 'blog' && arg(0) != 'blog' || arg(1) != $node->uid) {
       $links['blog_usernames_blog'] = array(
@@ -108,9 +108,9 @@ function blog_node_view($node, $build_mode = 'full') {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function blog_menu() {
+function blog__menu() {
   $items['blog'] = array(
     'title' => 'Blogs',
     'page callback' => 'blog_page_last',
@@ -168,19 +168,19 @@ function _blog_post_exists($account) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function blog_block_list() {
+function blog__block_list() {
   $block['recent']['info'] = t('Recent blog posts');
   return $block;
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Displays the most recent 10 blog titles.
  */
-function blog_block_view($delta = '') {
+function blog__block_view($delta = '') {
   global $user;
 
   if (user_access('access content')) {
diff --git a/modules/blogapi/blogapi.install b/modules/blogapi/blogapi.install
index b961616..8221106 100644
--- a/modules/blogapi/blogapi.install
+++ b/modules/blogapi/blogapi.install
@@ -7,26 +7,26 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function blogapi_install() {
+function blogapi__install() {
   // Create tables.
   drupal_install_schema('blogapi');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function blogapi_uninstall() {
+function blogapi__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('blogapi');
 }
 
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function blogapi_schema() {
+function blogapi__schema() {
   $schema['blogapi_files'] = array(
     'description' => 'Stores information for files uploaded via the blogapi.',
     'fields' => array(
diff --git a/modules/blogapi/blogapi.module b/modules/blogapi/blogapi.module
index 17d1542..c234031 100644
--- a/modules/blogapi/blogapi.module
+++ b/modules/blogapi/blogapi.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function blogapi_help($path, $arg) {
+function blogapi__help($path, $arg) {
   switch ($path) {
     case 'admin/help#blogapi':
       $output = '<p>' . t("The Blog API module allows your site's users to access and post to their blogs from external blogging clients. External blogging clients are available for a wide range of desktop operating systems, and generally provide a feature-rich graphical environment for creating and editing posts.") . '</p>';
@@ -21,9 +21,9 @@ function blogapi_help($path, $arg) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function blogapi_permission() {
+function blogapi__permission() {
   return array(
     'administer content with blog api' => array(
       'title' => t('Administer content with blog API'),
@@ -33,9 +33,9 @@ function blogapi_permission() {
 }
 
 /**
- * Implement hook_xmlrpc().
+ * Implement hook__xmlrpc().
  */
-function blogapi_xmlrpc() {
+function blogapi__xmlrpc() {
   return array(
     array(
       'blogger.getUsersBlogs',
@@ -231,7 +231,7 @@ function blogapi_blogger_new_post($appkey, $blogid, $username, $password, $conte
     return $valid;
   }
 
-  node_validate($edit);
+  node__validate($edit);
   if ($errors = form_get_errors()) {
     return blogapi_error(implode("\n", $errors));
   }
@@ -289,7 +289,7 @@ function blogapi_blogger_edit_post($appkey, $postid, $username, $password, $cont
     return $valid;
   }
 
-  node_validate($node);
+  node__validate($node);
   if ($errors = form_get_errors()) {
     return blogapi_error(implode("\n", $errors));
   }
@@ -357,7 +357,7 @@ function blogapi_blogger_delete_post($appkey, $postid, $username, $password, $pu
     return blogapi_error($user);
   }
 
-  node_delete($postid);
+  node__delete($postid);
   return TRUE;
 }
 
@@ -808,9 +808,9 @@ function blogapi_admin_settings() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function blogapi_menu() {
+function blogapi__menu() {
   $items['blogapi/rsd'] = array(
     'title' => 'RSD',
     'page callback' => 'blogapi_rsd',
@@ -830,9 +830,9 @@ function blogapi_menu() {
 }
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function blogapi_init() {
+function blogapi__init() {
   if (drupal_is_front_page()) {
     drupal_add_link(array('rel' => 'EditURI',
                           'type' => 'application/rsd+xml',
diff --git a/modules/book/book.install b/modules/book/book.install
index 2729cc1..6cb0d7a 100644
--- a/modules/book/book.install
+++ b/modules/book/book.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function book_install() {
+function book__install() {
   // Create tables.
   drupal_install_schema('book');
   // Add the node type.
@@ -17,9 +17,9 @@ function book_install() {
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function book_uninstall() {
+function book__uninstall() {
   // Delete menu links.
   db_query("DELETE FROM {menu_links} WHERE module = 'book'");
   menu_cache_clear_all();
@@ -49,9 +49,9 @@ function _book_install_type_create() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function book_schema() {
+function book__schema() {
   $schema['book'] = array(
   'description' => 'Stores book outline information. Uniquely connects each node in the outline to a link in {menu_links}',
     'fields' => array(
diff --git a/modules/book/book.module b/modules/book/book.module
index 01c7d04..53cd75a 100644
--- a/modules/book/book.module
+++ b/modules/book/book.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function book_theme() {
+function book__theme() {
   return array(
     'book_navigation' => array(
       'arguments' => array('book_link' => NULL),
@@ -37,9 +37,9 @@ function book_theme() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function book_permission() {
+function book__permission() {
   return array(
     'administer book outlines' => array(
       'title' => t('Administer book outlines'),
@@ -97,9 +97,9 @@ function book_node_view_link($node, $build_mode) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function book_menu() {
+function book__menu() {
   $items['admin/content/book'] = array(
     'title' => 'Books',
     'page callback' => 'book_admin_overview',
@@ -179,16 +179,16 @@ function _book_outline_remove_access($node) {
 }
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function book_init() {
+function book__init() {
   drupal_add_css(drupal_get_path('module', 'book') . '/book.css');
 }
 
 /**
- * Implement hook_field_build_modes().
+ * Implement hook__field_build_modes().
  */
-function book_field_build_modes($obj_type) {
+function book__field_build_modes($obj_type) {
   $modes = array();
   if ($obj_type == 'node') {
     $modes = array(
@@ -199,9 +199,9 @@ function book_field_build_modes($obj_type) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function book_block_list() {
+function book__block_list() {
   $block = array();
   $block['navigation']['info'] = t('Book navigation');
   $block['navigation']['cache'] = BLOCK_CACHE_PER_PAGE | BLOCK_CACHE_PER_ROLE;
@@ -210,12 +210,12 @@ function book_block_list() {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Displays the book table of contents in a block when the current page is a
  * single-node view of a book node.
  */
-function book_block_view($delta = '') {
+function book__block_view($delta = '') {
   $block = array();
   $current_bid = 0;
   if ($node = menu_get_object()) {
@@ -263,9 +263,9 @@ function book_block_view($delta = '') {
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function book_block_configure($delta = '') {
+function book__block_configure($delta = '') {
   $block = array();
   $options = array(
     'all pages' => t('Show block on all pages'),
@@ -283,9 +283,9 @@ function book_block_configure($delta = '') {
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function book_block_save($delta = '', $edit = array()) {
+function book__block_save($delta = '', $edit = array()) {
   $block = array();
   variable_set('book_block_mode', $edit['book_block_mode']);
 }
@@ -340,14 +340,14 @@ function book_get_books() {
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  *
  * Adds the book fieldset to the node form.
  *
  * @see book_pick_book_submit()
  * @see book_submit()
  */
-function book_form_alter(&$form, $form_state, $form_id) {
+function book__form_alter(&$form, $form_state, $form_id) {
 
   if (!empty($form['#node_edit_form'])) {
     // Add elements to the node form.
@@ -704,9 +704,9 @@ function book_menu_name($bid) {
 }
 
 /**
- * Implement hook_node_load().
+ * Implement hook__node_load().
  */
-function book_node_load($nodes, $types) {
+function book__node_load($nodes, $types) {
   $result = db_query("SELECT * FROM {book} b INNER JOIN {menu_links} ml ON b.mlid = ml.mlid WHERE b.nid IN (:nids)", array(':nids' =>  array_keys($nodes)), array('fetch' => PDO::FETCH_ASSOC));
   foreach ($result as $record) {
     $nodes[$record['nid']]->book = $record;
@@ -717,9 +717,9 @@ function book_node_load($nodes, $types) {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function book_node_view($node, $build_mode) {
+function book__node_view($node, $build_mode) {
   if ($build_mode == 'full') {
     if (!empty($node->book['bid']) && empty($node->in_preview)) {
       $node->content['book_navigation'] = array(
@@ -735,12 +735,12 @@ function book_node_view($node, $build_mode) {
 }
 
 /**
- * Implement hook_page_alter().
+ * Implement hook__page_alter().
  *
  * Add the book menu to the list of menus used to build the active trail when
  * viewing a book page.
  */
-function book_page_alter(&$page) {
+function book__page_alter(&$page) {
   if (($node = menu_get_object()) && !empty($node->book['bid'])) {
     $active_menus = menu_get_active_menu_names();
     $active_menus[] = $node->book['menu_name'];
@@ -749,9 +749,9 @@ function book_page_alter(&$page) {
 }
 
 /**
- * Implement hook_node_presave().
+ * Implement hook__node_presave().
  */
-function book_node_presave($node) {
+function book__node_presave($node) {
   // Always save a revision for non-administrators.
   if (!empty($node->book['bid']) && !user_access('administer nodes')) {
     $node->revision = 1;
@@ -767,9 +767,9 @@ function book_node_presave($node) {
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function book_node_insert($node) {
+function book__node_insert($node) {
   if (!empty($node->book['bid'])) {
     if ($node->book['bid'] == 'new') {
       // New nodes that are their own book.
@@ -782,9 +782,9 @@ function book_node_insert($node) {
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function book_node_update($node) {
+function book__node_update($node) {
   if (!empty($node->book['bid'])) {
     if ($node->book['bid'] == 'new') {
       // New nodes that are their own book.
@@ -797,9 +797,9 @@ function book_node_update($node) {
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function book_node_delete($node) {
+function book__node_delete($node) {
   if (!empty($node->book['bid'])) {
     if ($node->nid == $node->book['bid']) {
       // Handle deletion of a top-level post.
@@ -820,9 +820,9 @@ function book_node_delete($node) {
 }
 
 /**
- * Implement hook_node_prepare().
+ * Implement hook__node_prepare().
  */
-function book_node_prepare($node) {
+function book__node_prepare($node) {
   // Prepare defaults for the add/edit form.
   if (empty($node->book) && (user_access('add content to books') || user_access('administer book outlines'))) {
     $node->book = array();
@@ -1078,12 +1078,12 @@ function book_type_is_allowed($type) {
 }
 
 /**
- * Implement hook_node_type_update().
+ * Implement hook__node_type_update().
  *
  * Update book module's persistent variables if the machine-readable name of a
  * node type is changed.
  */
-function book_node_type_update($type) {
+function book__node_type_update($type) {
   if (!empty($type->old_type) && $type->old_type != $type->type) {
     // Update the list of node types that are allowed to be added to books.
     $allowed_types = variable_get('book_allowed_types', array('book'));
@@ -1103,9 +1103,9 @@ function book_node_type_update($type) {
 }
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function book_help($path, $arg) {
+function book__help($path, $arg) {
   switch ($path) {
     case 'admin/help#book':
       $output = '<p>' . t('The book module is suited for creating structured, multi-page hypertexts such as site resource guides, manuals, and Frequently Asked Questions (FAQs). It permits a document to have chapters, sections, subsections, etc. Authors with suitable permissions can add pages to a collaborative book, placing them into the existing document by adding them to a table of contents menu.') . '</p>';
diff --git a/modules/color/color.install b/modules/color/color.install
index f05709c..4b014a2 100644
--- a/modules/color/color.install
+++ b/modules/color/color.install
@@ -6,7 +6,7 @@
  * Install, update and uninstall functions for the color module.
  */
 
-function color_requirements($phase) {
+function color__requirements($phase) {
   $requirements = array();
 
   if ($phase == 'runtime') {
diff --git a/modules/color/color.module b/modules/color/color.module
index 24078ee..8849a1f 100644
--- a/modules/color/color.module
+++ b/modules/color/color.module
@@ -2,9 +2,9 @@
 // $Id: color.module,v 1.64 2009-08-05 19:40:55 webchick Exp $
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function color_help($path, $arg) {
+function color__help($path, $arg) {
   switch ($path) {
     case 'admin/help#color':
       $output = '<p>' . t('The color module allows a site administrator to quickly and easily change the color scheme of certain themes. Although not all themes support color module, both Garland (the default theme) and Minnelli were designed to take advantage of its features. By using color module with a compatible theme, you can easily change the color of links, backgrounds, text, and other theme elements. Color module requires that your <a href="@url">file download method</a> be set to public.', array('@url' => url('admin/settings/file-system'))) . '</p>';
@@ -17,9 +17,9 @@ function color_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function color_theme() {
+function color__theme() {
   return array(
     'color_scheme_form' => array(
       'arguments' => array('form' => NULL),
@@ -28,7 +28,7 @@ function color_theme() {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function color_form_system_theme_settings_alter(&$form, &$form_state) {
   if (color_get_info(arg(4)) && function_exists('gd_info')) {
@@ -52,14 +52,14 @@ function color_form_system_theme_settings_alter(&$form, &$form_state) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function color_form_system_themes_alter(&$form, &$form_state) {
   _color_theme_select_form_alter($form, $form_state);
 }
 
 /**
- * Helper for hook_form_FORM_ID_alter() implementations.
+ * Helper for hook__form_FORM_ID_alter() implementations.
  */
 function _color_theme_select_form_alter(&$form, &$form_state) {
   // Use the generated screenshot in the theme list.
diff --git a/modules/comment/comment.admin.inc b/modules/comment/comment.admin.inc
index dd2e7c2..6504ef6 100644
--- a/modules/comment/comment.admin.inc
+++ b/modules/comment/comment.admin.inc
@@ -251,7 +251,7 @@ function comment_confirm_delete(&$form_state, $comment) {
 function comment_confirm_delete_submit($form, &$form_state) {
   $comment = $form['#comment'];
   // Delete the comment and its replies.
-  comment_delete($comment->cid);
+  comment__delete($comment->cid);
   drupal_set_message(t('The comment and all its replies have been deleted.'));
   watchdog('content', t('Deleted comment @cid and its replies.', array('@cid' => $comment->cid)));
   // Clear the cache so an anonymous user sees that his comment was deleted.
diff --git a/modules/comment/comment.api.php b/modules/comment/comment.api.php
index c088ad3..e358d8f 100644
--- a/modules/comment/comment.api.php
+++ b/modules/comment/comment.api.php
@@ -17,7 +17,7 @@
  * @param $comment
  *   The comment object.
  */
-function hook_comment_insert($comment) {
+function hook__comment_insert($comment) {
   // Reindex the node when comments are added.
   search_touch_node($comment->nid);
 }
@@ -28,7 +28,7 @@ function hook_comment_insert($comment) {
  * @param $comment
  *   The comment object.
  */
-function hook_comment_update($comment) {
+function hook__comment_update($comment) {
   // Reindex the node when comments are updated.
   search_touch_node($comment->nid);
 }
@@ -39,7 +39,7 @@ function hook_comment_update($comment) {
  * @param $comments
  *  An array of comment objects indexed by cid.
  */
-function hook_comment_load($comments) {
+function hook__comment_load($comments) {
   $result = db_query('SELECT cid, foo FROM {mytable} WHERE cid IN (:cids)', array(':cids' => array_keys($comments)));
   foreach ($result as $record) {
     $comments[$record->cid]->foo = $record->foo;
@@ -54,7 +54,7 @@ function hook_comment_load($comments) {
  * @return
  *   Nothing.
  */
-function hook_comment_view($comment) {
+function hook__comment_view($comment) {
   // how old is the comment
   $comment->time_ago = time() - $comment->timestamp;
 }
@@ -67,7 +67,7 @@ function hook_comment_view($comment) {
  * @return
  *   Nothing.
  */
-function hook_comment_publish($comment) {
+function hook__comment_publish($comment) {
   drupal_set_message(t('Comment: @subject has been published', array('@subject' => $comment->subject)));
 }
 
@@ -79,7 +79,7 @@ function hook_comment_publish($comment) {
  * @return
  *   Nothing.
  */
-function hook_comment_unpublish($comment) {
+function hook__comment_unpublish($comment) {
   drupal_set_message(t('Comment: @subject has been unpublished', array('@subject' => $comment->subject)));
 }
 
@@ -91,7 +91,7 @@ function hook_comment_unpublish($comment) {
  * @return
  *   Nothing.
  */
-function hook_comment_delete($comment) {
+function hook__comment_delete($comment) {
   drupal_set_message(t('Comment: @subject has been deleted', array('@subject' => $comment->subject)));
 }
 
diff --git a/modules/comment/comment.install b/modules/comment/comment.install
index 9d1ecb9..921c3aa 100644
--- a/modules/comment/comment.install
+++ b/modules/comment/comment.install
@@ -7,17 +7,17 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function comment_install() {
+function comment__install() {
   // Create tables.
   drupal_install_schema('comment');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function comment_uninstall() {
+function comment__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('comment');
 
@@ -38,9 +38,9 @@ function comment_uninstall() {
 }
 
 /**
- * Implement hook_enable().
+ * Implement hook__enable().
  */
-function comment_enable() {
+function comment__enable() {
   // Insert records into the node_comment_statistics for nodes that are missing.
   $query = db_select('node', 'n');
   $query->leftJoin('node_comment_statistics', 'ncs', 'ncs.nid = n.nid');
@@ -165,9 +165,9 @@ function comment_update_7006() {
  */
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function comment_schema() {
+function comment__schema() {
   $schema['comment'] = array(
     'description' => 'Stores comments and associated data.',
     'fields' => array(
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index eb6e940..1fa3faf 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -81,9 +81,9 @@ define('COMMENT_PREVIEW_OPTIONAL', 0);
 define('COMMENT_PREVIEW_REQUIRED', 1);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function comment_help($path, $arg) {
+function comment__help($path, $arg) {
   switch ($path) {
     case 'admin/help#comment':
       $output  = '<p>' . t('The comment module allows visitors to comment on your posts, creating ad hoc discussion boards. Any <a href="@content-type">content type</a> may have its <em>Default comment setting</em> set to <em>Open</em> to allow comments, <em>Hidden</em> to hide existing comments and prevent new comments or <em>Closed</em> to allow existing comments to be viewed but no new comments added. Comment display settings and other controls may also be customized for each content type.', array('@content-type' => url('admin/structure/types'))) . '</p>';
@@ -96,9 +96,9 @@ function comment_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function comment_theme() {
+function comment__theme() {
   return array(
     'comment_block' => array(
       'arguments' => array(),
@@ -124,9 +124,9 @@ function comment_theme() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function comment_menu() {
+function comment__menu() {
   $items['admin/content/comment'] = array(
     'title' => 'Comments',
     'description' => 'List and edit site comments and the comment approval queue.',
@@ -187,9 +187,9 @@ function comment_menu() {
 }
 
 /**
- * Implement hook_fieldable_info().
+ * Implement hook__fieldable_info().
  */
-function comment_fieldable_info() {
+function comment__fieldable_info() {
   $return = array(
     'comment' => array(
       'label' => t('Comment'),
@@ -212,25 +212,25 @@ function comment_fieldable_info() {
 }
 
 /**
- * Implement hook_node_type_insert().
+ * Implement hook__node_type_insert().
  */
-function comment_node_type_insert($info) {
+function comment__node_type_insert($info) {
   field_attach_create_bundle('comment_node_' . $info->type);
 }
 
 /**
- * Implement hook_node_type_update().
+ * Implement hook__node_type_update().
  */
-function comment_node_type_update($info) {
+function comment__node_type_update($info) {
   if (!empty($info->old_type) && $info->type != $info->old_type) {
     field_attach_rename_bundle('comment_node_' . $info->old_type, 'comment_node_' . $info->type);
   }
 }
 
 /**
- * Implement hook_node_type_delete().
+ * Implement hook__node_type_delete().
  */
-function comment_node_type_delete($info) {
+function comment__node_type_delete($info) {
   field_attach_delete_bundle('comment_node_' . $info->type);
   $settings = array(
     'comment',
@@ -247,9 +247,9 @@ function comment_node_type_delete($info) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function comment_permission() {
+function comment__permission() {
   return array(
     'administer comments' => array(
       'title' => t('Administer comments'),
@@ -271,18 +271,18 @@ function comment_permission() {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function comment_block_list() {
+function comment__block_list() {
   $blocks['recent']['info'] = t('Recent comments');
 
   return $blocks;
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function comment_block_configure($delta = '') {
+function comment__block_configure($delta = '') {
   $form['comment_block_count'] = array(
     '#type' => 'select',
     '#title' => t('Number of recent comments'),
@@ -294,18 +294,18 @@ function comment_block_configure($delta = '') {
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function comment_block_save($delta = '', $edit = array()) {
+function comment__block_save($delta = '', $edit = array()) {
   variable_set('comment_block_count', (int)$edit['comment_block_count']);
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Generates a block with the most recent comments.
  */
-function comment_block_view($delta = '') {
+function comment__block_view($delta = '') {
   if (user_access('access comments')) {
     $block['subject'] = t('Recent comments');
     $block['content'] = theme('comment_block');
@@ -464,9 +464,9 @@ function theme_comment_block() {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function comment_node_view($node, $build_mode) {
+function comment__node_view($node, $build_mode) {
   $links = array();
 
   if ($node->comment) {
@@ -877,7 +877,7 @@ function comment_links($comment) {
       }
     }
     elseif (user_access('post comments')) {
-      if (comment_access('edit', $comment)) {
+      if (comment__access('edit', $comment)) {
         $links['comment_edit'] = array(
           'title' => t('edit'),
           'href' => "comment/edit/$comment->cid",
@@ -923,7 +923,7 @@ function comment_build_multiple($comments, $build_mode = 'full', $weight = 0) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function comment_form_node_type_form_alter(&$form, $form_state) {
   if (isset($form['identity']['type'])) {
@@ -985,9 +985,9 @@ function comment_form_node_type_form_alter(&$form, $form_state) {
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  */
-function comment_form_alter(&$form, $form_state, $form_id) {
+function comment__form_alter(&$form, $form_state, $form_id) {
   if (!empty($form['#node_edit_form'])) {
     $node = $form['#node'];
     $form['comment_settings'] = array(
@@ -1050,9 +1050,9 @@ function comment_form_alter(&$form, $form_state, $form_id) {
 }
 
 /**
- * Implement hook_node_load().
+ * Implement hook__node_load().
  */
-function comment_node_load($nodes, $types) {
+function comment__node_load($nodes, $types) {
   $comments_enabled = array();
 
   // Check if comments are enabled for each node. If comments are disabled,
@@ -1081,18 +1081,18 @@ function comment_node_load($nodes, $types) {
 }
 
 /**
- * Implement hook_node_prepare().
+ * Implement hook__node_prepare().
  */
-function comment_node_prepare($node) {
+function comment__node_prepare($node) {
   if (!isset($node->comment)) {
     $node->comment = variable_get("comment_$node->type", COMMENT_NODE_OPEN);
   }
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function comment_node_insert($node) {
+function comment__node_insert($node) {
   db_insert('node_comment_statistics')
     ->fields(array(
       'nid' => $node->nid,
@@ -1105,9 +1105,9 @@ function comment_node_insert($node) {
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function comment_node_delete($node) {
+function comment__node_delete($node) {
   $cids = db_query('SELECT cid FROM {comment} WHERE nid = :nid', array(':nid' => $node->nid))->fetchCol();
   comment_delete_multiple($cids);
   db_delete('node_comment_statistics')
@@ -1116,9 +1116,9 @@ function comment_node_delete($node) {
 }
 
 /**
- * Implement hook_node_update_index().
+ * Implement hook__node_update_index().
  */
-function comment_node_update_index($node) {
+function comment__node_update_index($node) {
   $text = '';
   if ($node->comment != COMMENT_NODE_HIDDEN) {
     $comments = db_query('SELECT subject, comment, format FROM {comment} WHERE nid = :nid AND status = :status', array(
@@ -1133,17 +1133,17 @@ function comment_node_update_index($node) {
 }
 
 /**
- * Implement hook_update_index().
+ * Implement hook__update_index().
  */
-function comment_update_index() {
+function comment__update_index() {
   // Store the maximum possible comments per thread (used for ranking by reply count)
   variable_set('node_cron_comments_scale', 1.0 / max(1, db_query('SELECT MAX(comment_count) FROM {node_comment_statistics}')->fetchField()));
 }
 
 /**
- * Implement hook_node_search_result().
+ * Implement hook__node_search_result().
  */
-function comment_node_search_result($node) {
+function comment__node_search_result($node) {
   if ($node->comment != COMMENT_NODE_HIDDEN) {
     $comments = db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = :nid', array('nid' => $node->nid))->fetchField();
     return format_plural($comments, '1 comment', '@count comments');
@@ -1152,9 +1152,9 @@ function comment_node_search_result($node) {
 }
 
 /**
- * Implement hook_user_cancel().
+ * Implement hook__user_cancel().
  */
-function comment_user_cancel($edit, $account, $method) {
+function comment__user_cancel($edit, $account, $method) {
   switch ($method) {
     case 'user_cancel_block_unpublish':
       db_update('comment')
@@ -1187,7 +1187,7 @@ function comment_user_cancel($edit, $account, $method) {
 }
 
 /**
- * This is *not* a hook_access() implementation. This function is called
+ * This is *not* a hook__access() implementation. This function is called
  * to determine whether the current user has access to a particular comment.
  *
  * Authenticated users can edit their comments as long they have not been
@@ -1201,7 +1201,7 @@ function comment_user_cancel($edit, $account, $method) {
  * @return
  *   TRUE if the current user has acces to the comment, FALSE otherwise.
  */
-function comment_access($op, $comment) {
+function comment__access($op, $comment) {
   global $user;
 
   if ($op == 'edit') {
@@ -1353,7 +1353,7 @@ function comment_save($comment) {
  * @param $cid
  *   The comment to delete.
  */
-function comment_delete($cid) {
+function comment__delete($cid) {
   comment_delete_multiple(array($cid));
 }
 
@@ -1465,7 +1465,7 @@ function comment_load_multiple($cids = array(), $conditions = array()) {
   if (!empty($comments)) {
     // Attach fields.
     field_attach_load('comment', $comments);
-    // Invoke hook_comment_load().
+    // Invoke hook__comment_load().
     module_invoke_all('comment_load', $comments);
   }
   return $comments;
@@ -2298,9 +2298,9 @@ function vancode2int($c = '00') {
 }
 
 /**
- * Implement hook_hook_info().
+ * Implement hook__hook_info().
  */
-function comment_hook_info() {
+function comment__hook_info() {
   return array(
     'comment' => array(
       'comment' => array(
@@ -2322,9 +2322,9 @@ function comment_hook_info() {
 }
 
 /**
- * Implement hook_action_info().
+ * Implement hook__action_info().
  */
-function comment_action_info() {
+function comment__action_info() {
   return array(
     'comment_unpublish_action' => array(
       'description' => t('Unpublish comment'),
@@ -2418,9 +2418,9 @@ function comment_unpublish_by_keyword_action($comment, $context) {
 }
 
 /**
- * Implement hook_ranking().
+ * Implement hook__ranking().
  */
-function comment_ranking() {
+function comment__ranking() {
   return array(
     'comments' => array(
       'title' => t('Number of comments'),
@@ -2433,9 +2433,9 @@ function comment_ranking() {
 }
 
 /**
- * Implement hook_menu_alter().
+ * Implement hook__menu_alter().
  */
-function comment_menu_alter(&$items) {
+function comment__menu_alter(&$items) {
   // Add comments to the description for admin/content.
   $items['admin/content/content']['description'] = "View, edit, and delete your site's content and comments.";
 }
diff --git a/modules/contact/contact.install b/modules/contact/contact.install
index c00282a..6a43609 100644
--- a/modules/contact/contact.install
+++ b/modules/contact/contact.install
@@ -7,17 +7,17 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function contact_install() {
+function contact__install() {
   // Create tables.
   drupal_install_schema('contact');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function contact_uninstall() {
+function contact__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('contact');
 
@@ -27,9 +27,9 @@ function contact_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function contact_schema() {
+function contact__schema() {
   $schema['contact'] = array(
     'description' => 'Contact form category settings.',
     'fields' => array(
diff --git a/modules/contact/contact.module b/modules/contact/contact.module
index 060f919..e92d585 100644
--- a/modules/contact/contact.module
+++ b/modules/contact/contact.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function contact_help($path, $arg) {
+function contact__help($path, $arg) {
   switch ($path) {
     case 'admin/help#contact':
       $output = '<p>' . t('The contact module facilitates communication via e-mail, by allowing your site\'s visitors to contact one another (personal contact forms), and by providing a simple way to direct messages to a set of administrator-defined recipients (the <a href="@contact">contact page</a>). With either form, users specify a subject, write their message, and (optionally) have a copy of their message sent to their own e-mail address.', array('@contact' => url('contact'))) . '</p>';
@@ -33,9 +33,9 @@ function contact_help($path, $arg) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function contact_permission() {
+function contact__permission() {
   return array(
     'administer site-wide contact form' => array(
       'title' => t('Administer site-wide contact form'),
@@ -49,9 +49,9 @@ function contact_permission() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function contact_menu() {
+function contact__menu() {
   $items['admin/structure/contact'] = array(
     'title' => 'Contact form',
     'description' => 'Create a system contact form and set up categories for the form to use.',
@@ -129,16 +129,16 @@ function _contact_personal_tab_access($account) {
 /**
  * Load the data for a single contact category.
  */
-function contact_load($cid) {
+function contact__load($cid) {
   $contact = db_query("SELECT cid, category, recipients, reply, weight, selected FROM {contact} WHERE cid = :cid", array(':cid' => $cid))
     ->fetchAssoc();
   return empty($contact) ? FALSE : $contact;
 }
 
 /**
- * Implement hook_user_form().
+ * Implement hook__user_form().
  */
-function contact_user_form(&$edit, $account, $category) {
+function contact__user_form(&$edit, $account, $category) {
   if ($category == 'account') {
     $form['contact'] = array('#type' => 'fieldset',
       '#title' => t('Contact settings'),
@@ -155,16 +155,16 @@ function contact_user_form(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_user_insert().
+ * Implement hook__user_insert().
  */
-function contact_user_insert(&$edit, $account, $category) {
+function contact__user_insert(&$edit, $account, $category) {
   $edit['contact'] = variable_get('contact_default_status', 1);
 }
 
 /**
- * Implement hook_mail().
+ * Implement hook__mail().
  */
-function contact_mail($key, &$message, $params) {
+function contact__mail($key, &$message, $params) {
   $language = $message['language'];
   switch ($key) {
     case 'page_mail':
diff --git a/modules/contact/contact.pages.inc b/modules/contact/contact.pages.inc
index f9b0e31..dad320a 100644
--- a/modules/contact/contact.pages.inc
+++ b/modules/contact/contact.pages.inc
@@ -123,7 +123,7 @@ function contact_site_form_submit($form, &$form_state) {
   $from = $values['mail'];
 
   // Load category properties and save form values for email composition.
-  $contact = contact_load($values['cid']);
+  $contact = contact__load($values['cid']);
   $values['contact'] = $contact;
 
   // Send the e-mail to the recipients using the site default language.
diff --git a/modules/dblog/dblog.admin.inc b/modules/dblog/dblog.admin.inc
index 4193cd4..1407678 100644
--- a/modules/dblog/dblog.admin.inc
+++ b/modules/dblog/dblog.admin.inc
@@ -7,7 +7,7 @@
  */
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function dblog_form_system_logging_settings_alter(&$form, $form_state) {
   $form['dblog_row_limit'] = array(
diff --git a/modules/dblog/dblog.install b/modules/dblog/dblog.install
index 1eb3cbd..42b9032 100644
--- a/modules/dblog/dblog.install
+++ b/modules/dblog/dblog.install
@@ -7,25 +7,25 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function dblog_install() {
+function dblog__install() {
   // Create tables.
   drupal_install_schema('dblog');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function dblog_uninstall() {
+function dblog__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('dblog');
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function dblog_schema() {
+function dblog__schema() {
   $schema['watchdog'] = array(
     'description' => 'Table that contains logs of all system events.',
     'fields' => array(
diff --git a/modules/dblog/dblog.module b/modules/dblog/dblog.module
index c2a15d9..04d16d0 100644
--- a/modules/dblog/dblog.module
+++ b/modules/dblog/dblog.module
@@ -13,9 +13,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function dblog_help($path, $arg) {
+function dblog__help($path, $arg) {
   switch ($path) {
     case 'admin/help#dblog':
       $output = '<p>' . t('The dblog module monitors your system, capturing system events in a log to be reviewed by an authorized individual at a later time. This is useful for site administrators who want a quick overview of activities on their site. The logs also record the sequence of events, so it can be useful for debugging site errors.') . '</p>';
@@ -28,9 +28,9 @@ function dblog_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function dblog_theme() {
+function dblog__theme() {
   return array(
     'dblog_filters' => array(
       'arguments' => array('form' => NULL),
@@ -39,9 +39,9 @@ function dblog_theme() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function dblog_menu() {
+function dblog__menu() {
   $items['admin/reports/dblog'] = array(
     'title' => 'Recent log entries',
     'description' => 'View events that have recently been logged.',
@@ -73,7 +73,7 @@ function dblog_menu() {
   return $items;
 }
 
-function dblog_init() {
+function dblog__init() {
   if (arg(0) == 'admin' && arg(1) == 'reports') {
     // Add the CSS for this module
     drupal_add_css(drupal_get_path('module', 'dblog') . '/dblog.css', array('preprocess' => FALSE));
@@ -83,11 +83,11 @@ function dblog_init() {
 
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  *
  * Remove expired log messages and flood control events.
  */
-function dblog_cron() {
+function dblog__cron() {
   // Cleanup the watchdog table
   $max = db_query('SELECT MAX(wid) FROM {watchdog}')->fetchField();
   db_delete('watchdog')
@@ -96,9 +96,9 @@ function dblog_cron() {
 }
 
 /**
- * Implement hook_user_cancel().
+ * Implement hook__user_cancel().
  */
-function dblog_user_cancel($edit, $account, $method) {
+function dblog__user_cancel($edit, $account, $method) {
   switch ($method) {
     case 'user_cancel_reassign':
       db_update('watchdog')
@@ -127,11 +127,11 @@ function _dblog_get_message_types() {
 }
 
 /**
- * Implement hook_watchdog().
+ * Implement hook__watchdog().
  *
  * Note some values may be truncated for database column size restrictions.
  */
-function dblog_watchdog(array $log_entry) {
+function dblog__watchdog(array $log_entry) {
   Database::getConnection('default', 'default')->insert('watchdog')
     ->fields(array(
       'uid' => $log_entry['user']->uid,
diff --git a/modules/dblog/dblog.test b/modules/dblog/dblog.test
index 06442a0..97c602c 100644
--- a/modules/dblog/dblog.test
+++ b/modules/dblog/dblog.test
@@ -106,7 +106,7 @@ class DBLogTestCase extends DrupalWebTestCase {
     $message = 'Log entry added to test the dblog row limit.';
     for ($i = 0; $i < $count; $i++) {
       $log['message'] = $i . ' => ' . $message;
-      dblog_watchdog($log);
+      dblog__watchdog($log);
     }
   }
 
@@ -378,9 +378,9 @@ class DBLogTestCase extends DrupalWebTestCase {
       'timestamp'   => REQUEST_TIME,
     );
     // Add a watchdog entry.
-    dblog_watchdog($log);
+    dblog__watchdog($log);
     // Make sure the table count has actually incremented.
-    $this->assertEqual($count + 1, db_query('SELECT COUNT(*) FROM {watchdog}')->fetchField(), t('dblog_watchdog() added an entry to the dblog :count', array(':count' => $count)));
+    $this->assertEqual($count + 1, db_query('SELECT COUNT(*) FROM {watchdog}')->fetchField(), t('dblog__watchdog() added an entry to the dblog :count', array(':count' => $count)));
     // Login the admin user.
     $this->drupalLogin($this->big_user);
     // Now post to clear the db table.
diff --git a/modules/field/field.api.php b/modules/field/field.api.php
index c0231cd..454c4dd 100644
--- a/modules/field/field.api.php
+++ b/modules/field/field.api.php
@@ -10,7 +10,7 @@
  * Expose fieldable object types.
  *
  * Inform the Field API about object types to which fields can be attached.
- * @see hook_fieldable_info_alter().
+ * @see hook__fieldable_info_alter().
  *
  * @return
  *   An array whose keys are fieldable object type names and whose values are
@@ -49,17 +49,17 @@
  *       implemented in a contributed module) to attach themselves to the
  *       existing administration pages for the bundle.
  *       - path: the path of the bundle's main administration page, as defined
- *         in hook_menu(). If the path includes a placeholder for the bundle,
+ *         in hook__menu(). If the path includes a placeholder for the bundle,
  *         the 'bundle argument', 'bundle helper' and 'real path' keys below
  *         are required.
  *       - bundle argument: The position of the placeholder in 'path', if any.
  *       - real path: The actual path (no placeholder) of the bundle's main
  *         administration page. This will be used to generate links.
- *       - access callback: As in hook_menu(). 'user_access' will be assumed if
+ *       - access callback: As in hook__menu(). 'user_access' will be assumed if
  *         no value is provided.
- *       - access arguments: As in hook_menu().
+ *       - access arguments: As in hook__menu().
  */
-function hook_fieldable_info() {
+function hook__fieldable_info() {
   $return = array(
     'taxonomy_term' => array(
       'label' => t('Taxonomy term'),
@@ -91,10 +91,10 @@ function hook_fieldable_info() {
  * Perform alterations on fieldable types.
  *
  * @param $info
- *   Array of informations on fieldable types exposed by hook_fieldable_info()
+ *   Array of informations on fieldable types exposed by hook__fieldable_info()
  *   implementations.
  */
-function hook_fieldable_info_alter(&$info) {
+function hook__fieldable_info_alter(&$info) {
   // A contributed module handling node-level caching would want to disable
   // field cache for nodes.
   $info['node']['cacheable'] = FALSE;
@@ -111,28 +111,28 @@ function hook_fieldable_info_alter(&$info) {
  *
  * The bulk of the Field Types API are related to field types. A field type
  * represents a particular data storage type (integer, string, date, etc.) that
- * can be attached to a fieldable object. hook_field_info() defines the basic
+ * can be attached to a fieldable object. hook__field_info() defines the basic
  * properties of a field type, and a variety of other field hooks are called by
  * the Field Attach API to perform field-type-specific actions.
- * @see hook_field_info().
- * @see hook_field_info_alter().
- * @see hook_field_schema().
- * @see hook_field_load().
- * @see hook_field_validate().
- * @see hook_field_presave().
- * @see hook_field_insert().
- * @see hook_field_update().
- * @see hook_field_delete().
- * @see hook_field_delete_revision().
- * @see hook_field_sanitize().
+ * @see hook__field_info().
+ * @see hook__field_info_alter().
+ * @see hook__field_schema().
+ * @see hook__field_load().
+ * @see hook__field_validate().
+ * @see hook__field_presave().
+ * @see hook__field_insert().
+ * @see hook__field_update().
+ * @see hook__field_delete().
+ * @see hook__field_delete_revision().
+ * @see hook__field_sanitize().
  *
  * The Field Types API also defines two kinds of pluggable handlers: widgets
  * and formatters, which specify how the field appears in edit forms and in
  * displayed objects. Widgets and formatters can be implemented by a field-type
  * module for it's own field types, or by a third-party module to extend the
  * behavior of existing field types.
- * @see hook_field_widget_info().
- * @see hook_field_formatter_info().
+ * @see hook__field_widget_info().
+ * @see hook__field_formatter_info().
  */
 
 /**
@@ -166,7 +166,7 @@ function hook_fieldable_info_alter(&$info) {
  *     type is available (i.e. provided by the field type module, or by a module
  *     the field type module depends on).
  */
-function hook_field_info() {
+function hook__field_info() {
   return array(
     'text' => array(
       'label' => t('Text'),
@@ -199,10 +199,10 @@ function hook_field_info() {
  * Perform alterations on Field API field types.
  *
  * @param $info
- *   Array of informations on widget types exposed by hook_field_info()
+ *   Array of informations on widget types exposed by hook__field_info()
  *   implementations.
  */
-function hook_field_info_alter(&$info) {
+function hook__field_info_alter(&$info) {
   // Add a setting to all field types.
   foreach ($info as $field_type => $field_type_info) {
     $info[$field_type]['settings'] += array(
@@ -239,7 +239,7 @@ function hook_field_info_alter(&$info) {
  *     risk, modify the default indexes specified by the field-type module.
  *     Some storage engines might not support indexes.
  */
-function hook_field_schema($field) {
+function hook__field_schema($field) {
   if ($field['type'] == 'text_long') {
     $columns = array(
       'value' => array(
@@ -301,14 +301,14 @@ function hook_field_schema($field) {
  *   Changes or additions to field values are done by altering the $items
  *   parameter by reference.
  */
-function hook_field_load($obj_type, $objects, $field, $instances, &$items, $age) {
+function hook__field_load($obj_type, $objects, $field, $instances, &$items, $age) {
   global $language;
 
   foreach ($objects as $id => $object) {
     foreach ($items[$id] as $delta => $item) {
       if (!empty($instances[$id]['settings']['text_processing'])) {
         // Only process items with a cacheable format, the rest will be
-        // handled by hook_field_sanitize().
+        // handled by hook__field_sanitize().
         $format = $item['format'];
         if (filter_format_allowcache($format)) {
           $lang = isset($object->language) ? $object->language : $language->language;
@@ -346,11 +346,11 @@ function hook_field_load($obj_type, $objects, $field, $instances, &$items, $age)
  * @param $items
  *   $object->{$field['field_name']}, or an empty array if unset.
  */
-function hook_field_sanitize($obj_type, $object, $field, $instance, $items) {
+function hook__field_sanitize($obj_type, $object, $field, $instance, $items) {
   global $language;
   foreach ($items as $delta => $item) {
     // Only sanitize items which were not already processed inside
-    // hook_field_load(), i.e. items with uncacheable text formats, or coming
+    // hook__field_load(), i.e. items with uncacheable text formats, or coming
     // from a form preview.
     if (!isset($items[$delta]['safe'])) {
       if (!empty($instance['settings']['text_processing'])) {
@@ -396,7 +396,7 @@ function hook_field_sanitize($obj_type, $object, $field, $instance, $items) {
  *   - 'error': an error code (should be a string, prefixed with the module name)
  *   - 'message': the human readable message to be displayed.
  */
-function hook_field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
+function hook__field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
   foreach ($items as $delta => $item) {
     if (!empty($item['value'])) {
       if (!empty($field['settings']['max_length']) && drupal_strlen($item['value']) > $field['settings']['max_length']) {
@@ -423,7 +423,7 @@ function hook_field_validate($obj_type, $object, $field, $instance, $items, &$er
  * @param $items
  *   $object->{$field['field_name']}, or an empty array if unset.
  */
-function hook_field_presave($obj_type, $object, $field, $instance, $items) {
+function hook__field_presave($obj_type, $object, $field, $instance, $items) {
 }
 
 /**
@@ -440,7 +440,7 @@ function hook_field_presave($obj_type, $object, $field, $instance, $items) {
  * @param $items
  *   $object->{$field['field_name']}, or an empty array if unset.
  */
-function hook_field_insert($obj_type, $object, $field, $instance, $items) {
+function hook__field_insert($obj_type, $object, $field, $instance, $items) {
 }
 
 /**
@@ -457,7 +457,7 @@ function hook_field_insert($obj_type, $object, $field, $instance, $items) {
  * @param $items
  *   $object->{$field['field_name']}, or an empty array if unset.
  */
-function hook_field_update($obj_type, $object, $field, $instance, $items) {
+function hook__field_update($obj_type, $object, $field, $instance, $items) {
 }
 
 /**
@@ -476,7 +476,7 @@ function hook_field_update($obj_type, $object, $field, $instance, $items) {
  * @param $items
  *   $object->{$field['field_name']}, or an empty array if unset.
  */
-function hook_field_delete($obj_type, $object, $field, $instance, $items) {
+function hook__field_delete($obj_type, $object, $field, $instance, $items) {
 }
 
 /**
@@ -496,7 +496,7 @@ function hook_field_delete($obj_type, $object, $field, $instance, $items) {
  * @param $items
  *   $object->{$field['field_name']}, or an empty array if unset.
  */
-function hook_field_delete_revision($obj_type, $object, $field, $instance, $items) {
+function hook__field_delete_revision($obj_type, $object, $field, $instance, $items) {
 }
 
 /**
@@ -515,7 +515,7 @@ function hook_field_delete_revision($obj_type, $object, $field, $instance, $item
  * @param $items
  *   $object->{$field['field_name']}, or an empty array if unset.
  */
-function hook_field_prepare_translation($obj_type, $object, $field, $instance, $items) {
+function hook__field_prepare_translation($obj_type, $object, $field, $instance, $items) {
 }
 
 /**
@@ -524,9 +524,9 @@ function hook_field_prepare_translation($obj_type, $object, $field, $instance, $
  * Widgets are Form API elements with additional processing capabilities.
  * Widget hooks are typically called by the Field Attach API during the
  * creation of the field form structure with field_attach_form().
- * @see hook_field_widget_info_alter().
- * @see hook_field_widget().
- * @see hook_field_widget_error().
+ * @see hook__field_widget_info_alter().
+ * @see hook__field_widget().
+ * @see hook__field_widget_error().
  *
  * @return
  *   An array describing the widget types implemented by the module.
@@ -554,7 +554,7 @@ function hook_field_prepare_translation($obj_type, $object, $field, $instance, $
  *       FIELD_BEHAVIOR_DEFAULT (default) if the widget accepts default values.
  *       FIELD_BEHAVIOR_NONE if the widget does not support default values.
  */
-function hook_field_widget_info() {
+function hook__field_widget_info() {
     return array(
     'text_textfield' => array(
       'label' => t('Text field'),
@@ -591,10 +591,10 @@ function hook_field_widget_info() {
  * Perform alterations on Field API widget types.
  *
  * @param $info
- *   Array of informations on widget types exposed by hook_field_widget_info()
+ *   Array of informations on widget types exposed by hook__field_widget_info()
  *   implementations.
  */
-function hook_field_widget_info_alter(&$info) {
+function hook__field_widget_info_alter(&$info) {
   // Add a setting to a widget type.
   $info['text_textfield']['settings'] += array(
     'mymodule_additional_setting' => 'default value',
@@ -632,7 +632,7 @@ function hook_field_widget_info_alter(&$info) {
  * @return
  *   The form item for a single element for this field.
  */
-function hook_field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) {
+function hook__field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) {
   $element = array(
     '#type' => $instance['widget']['type'],
     '#default_value' => isset($items[$delta]) ? $items[$delta] : '',
@@ -649,12 +649,12 @@ function hook_field_widget(&$form, &$form_state, $field, $instance, $items, $del
  *   structure.
  * @param $error
  *   An associative array with the following key-value pairs, as returned by
- *   hook_field_validate():
+ *   hook__field_validate():
  *   - 'error': the error code. Complex widgets might need to report different
  *     errors to different form elements inside the widget.
  *   - 'message': the human readable message to be displayed.
  */
-function hook_field_widget_error($element, $error) {
+function hook__field_widget_error($element, $error) {
   form_error($element['value'], $error['message']);
 }
 
@@ -669,10 +669,10 @@ function hook_field_widget_error($element, $error) {
  * from formatter type names, following the pattern:
  * field_formatter_FORMATTER_NAME
  * The module implementing the formatters needs to register those theme hooks
- * using hook_theme().
+ * using hook__theme().
  *
- * @see hook_field_formatter_info().
- * @see hook_field_formatter_info_alter().
+ * @see hook__field_formatter_info().
+ * @see hook__field_formatter_info_alter().
  * @see theme_field_formatter_FORMATTER_NAME().
  *
  * @return
@@ -698,7 +698,7 @@ function hook_field_widget_error($element, $error) {
  *       takes care of displays all the field values. Examples: points on
  *       a generated graph picture, a Google map, a single link to a popup...
  */
-function hook_field_formatter_info() {
+function hook__field_formatter_info() {
   return array(
     'text_default' => array(
       'label' => t('Default'),
@@ -750,7 +750,7 @@ function hook_field_formatter_info() {
  *   Array of informations on formatter types exposed by
  *   hook_field_field_formatter_info() implementations.
  */
-function hook_field_formatter_info_alter(&$info) {
+function hook__field_formatter_info_alter(&$info) {
   // Add a setting to a formatter type.
   $info['text_default']['settings'] += array(
     'mymodule_additional_setting' => 'default value',
@@ -764,7 +764,7 @@ function hook_field_formatter_info_alter(&$info) {
  * Theme function for a field formatter.
  *
  * This is an example of a 'single' formatter, displaying one single field
- * value (the hook_field_formatter_info() entry uses
+ * value (the hook__field_formatter_info() entry uses
  * 'multiple values' = FIELD_BEHAVIOR_DEFAULT).
  *
  * @param $element
@@ -780,7 +780,7 @@ function hook_field_formatter_info_alter(&$info) {
  *   - #settings: The array of formatter settings.
  */
 function theme_field_formatter_FORMATTER_SINGLE($element) {
-  // This relies on a 'safe' element being prepared in hook_field_sanitize().
+  // This relies on a 'safe' element being prepared in hook__field_sanitize().
   return $element['#item']['safe'];
 }
 
@@ -788,7 +788,7 @@ function theme_field_formatter_FORMATTER_SINGLE($element) {
  * Theme function for a field formatter.
  *
  * This is an example of a 'single' formatter, displaying all the field values
- * (the hook_field_formatter_info() entry uses
+ * (the hook__field_formatter_info() entry uses
  * 'multiple values' = FIELD_BEHAVIOR_CUSTOM).
  *
  * @param $element
@@ -826,7 +826,7 @@ function theme_field_formatter_FORMATTER_MULTIPLE($element) {
  *
  * See field_attach_form() for details and arguments.
  */
-function hook_field_attach_form($obj_type, $object, &$form, &$form_state) {
+function hook__field_attach_form($obj_type, $object, &$form, &$form_state) {
 }
 
 /**
@@ -855,7 +855,7 @@ function hook_field_attach_form($obj_type, $object, &$form, &$form_state) {
  *   set as an empty array.
  *   - Loaded field ids are set as keys in $skip_fields.
  */
-function hook_field_attach_pre_load($obj_type, $objects, $age, &$skip_fields) {
+function hook__field_attach_pre_load($obj_type, $objects, $age, &$skip_fields) {
 }
 
 /**
@@ -878,7 +878,7 @@ function hook_field_attach_pre_load($obj_type, $objects, $age, &$skip_fields) {
  *
  * See field_attach_load() for details and arguments.
  */
-function hook_field_attach_load($obj_type, $objects, $age) {
+function hook__field_attach_load($obj_type, $objects, $age) {
 }
 
 /**
@@ -888,7 +888,7 @@ function hook_field_attach_load($obj_type, $objects, $age) {
  *
  * See field_attach_validate() for details and arguments.
  */
-function hook_field_attach_validate($obj_type, $object, &$errors) {
+function hook__field_attach_validate($obj_type, $object, &$errors) {
 }
 
 /**
@@ -898,7 +898,7 @@ function hook_field_attach_validate($obj_type, $object, &$errors) {
  *
  * See field_attach_submit() for details and arguments.
  */
-function hook_field_attach_submit($obj_type, $object, $form, &$form_state) {
+function hook__field_attach_submit($obj_type, $object, $form, &$form_state) {
 }
 
 /**
@@ -908,7 +908,7 @@ function hook_field_attach_submit($obj_type, $object, $form, &$form_state) {
  *
  * See field_attach_presave() for details and arguments.
  */
-function hook_field_attach_presave($obj_type, $object) {
+function hook__field_attach_presave($obj_type, $object) {
 }
 
 /**
@@ -928,7 +928,7 @@ function hook_field_attach_presave($obj_type, $object) {
  * @return
  *   Saved field ids are set set as keys in $skip_fields.
  */
-function hook_field_attach_pre_insert($obj_type, $object, &$skip_fields) {
+function hook__field_attach_pre_insert($obj_type, $object, &$skip_fields) {
 }
 
 /**
@@ -948,15 +948,15 @@ function hook_field_attach_pre_insert($obj_type, $object, &$skip_fields) {
  * @return
  *   Saved field ids are set set as keys in $skip_fields.
  */
-function hook_field_attach_pre_update($obj_type, $object, &$skip_fields) {
+function hook__field_attach_pre_update($obj_type, $object, &$skip_fields) {
 }
 
 /**
  * Act on field_attach_pre_query.
  *
  * This hook should be implemented by modules that use
- * hook_field_attach_pre_load(), hook_field_attach_pre_insert() and
- * hook_field_attach_pre_update() to bypass the regular storage engine, to
+ * hook__field_attach_pre_load(), hook__field_attach_pre_insert() and
+ * hook__field_attach_pre_update() to bypass the regular storage engine, to
  * handle field queries.
  *
  * @param $field_name
@@ -982,7 +982,7 @@ function hook_field_attach_pre_update($obj_type, $object, &$skip_fields) {
  *   The $skip_field parameter should be set to TRUE if the query has been
  *   handled.
  */
-function hook_field_attach_pre_query($field_name, $conditions, $count, &$cursor = NULL, $age, &$skip_field) {
+function hook__field_attach_pre_query($field_name, $conditions, $count, &$cursor = NULL, $age, &$skip_field) {
 }
 
 /**
@@ -992,7 +992,7 @@ function hook_field_attach_pre_query($field_name, $conditions, $count, &$cursor
  *
  * See field_attach_delete() for details and arguments.
  */
-function hook_field_attach_delete($obj_type, $object) {
+function hook__field_attach_delete($obj_type, $object) {
 }
 
 /**
@@ -1002,7 +1002,7 @@ function hook_field_attach_delete($obj_type, $object) {
  *
  * See field_attach_delete_revision() for details and arguments.
  */
-function hook_field_attach_delete_revision($obj_type, $object) {
+function hook__field_attach_delete_revision($obj_type, $object) {
 }
 
 /**
@@ -1019,7 +1019,7 @@ function hook_field_attach_delete_revision($obj_type, $object) {
  * @param $build_mode
  *   Build mode, e.g. 'full', 'teaser'...
  */
-function hook_field_attach_view_alter($output, $obj_type, $object, $build_mode) {
+function hook__field_attach_view_alter($output, $obj_type, $object, $build_mode) {
 }
 
 /**
@@ -1029,7 +1029,7 @@ function hook_field_attach_view_alter($output, $obj_type, $object, $build_mode)
  *
  * See field_attach_create_bundle() for details and arguments.
  */
-function hook_field_attach_create_bundle($bundle) {
+function hook__field_attach_create_bundle($bundle) {
 }
 
 /**
@@ -1039,7 +1039,7 @@ function hook_field_attach_create_bundle($bundle) {
  *
  * See field_attach_rename_bundle() for details and arguments.
  */
-function hook_field_attach_rename_bundle($bundle_old, $bundle_new) {
+function hook__field_attach_rename_bundle($bundle_old, $bundle_new) {
 }
 
 /**
@@ -1053,7 +1053,7 @@ function hook_field_attach_rename_bundle($bundle_old, $bundle_new) {
  *   An array of all instances that existed for $bundle before it was
  *   deleted.
  */
-function hook_field_attach_delete_bundle($bundle, $instances) {
+function hook__field_attach_delete_bundle($bundle, $instances) {
 }
 
 /**
@@ -1088,7 +1088,7 @@ function hook_field_attach_delete_bundle($bundle, $instances) {
  *   Loaded field values are added to $objects. Fields with no values should be
  *   set as an empty array.
  */
-function hook_field_storage_load($obj_type, $objects, $age, $skip_fields) {
+function hook__field_storage_load($obj_type, $objects, $age, $skip_fields) {
 }
 
 /**
@@ -1106,7 +1106,7 @@ function hook_field_storage_load($obj_type, $objects, $age, $skip_fields) {
  *   therefore should not be written again. The values associated to these keys
  *   are not specified.
  */
-function hook_field_storage_write($obj_type, $object, $op, $skip_fields) {
+function hook__field_storage_write($obj_type, $object, $op, $skip_fields) {
 }
 
 /**
@@ -1117,7 +1117,7 @@ function hook_field_storage_write($obj_type, $object, $op, $skip_fields) {
  * @param $object
  *   The object on which to operate.
  */
-function hook_field_storage_delete($obj_type, $object) {
+function hook__field_storage_delete($obj_type, $object) {
 }
 
 /**
@@ -1131,9 +1131,9 @@ function hook_field_storage_delete($obj_type, $object) {
  * @param $object
  *   The object on which to operate. The revision to delete is
  *   indicated by the object's revision id property, as identified by
- *   hook_fieldable_info() for $obj_type.
+ *   hook__fieldable_info() for $obj_type.
  */
-function hook_field_storage_delete_revision($obj_type, $object) {
+function hook__field_storage_delete_revision($obj_type, $object) {
 }
 
 /**
@@ -1155,7 +1155,7 @@ function hook_field_storage_delete_revision($obj_type, $object) {
  * @return
  *   See field_attach_query().
  */
-function hook_field_storage_query($field_name, $conditions, $count, &$cursor = NULL, $age) {
+function hook__field_storage_query($field_name, $conditions, $count, &$cursor = NULL, $age) {
 }
 
 /**
@@ -1164,7 +1164,7 @@ function hook_field_storage_query($field_name, $conditions, $count, &$cursor = N
  * @param $bundle
  *   The name of the bundle being created.
  */
-function hook_field_storage_create_bundle($bundle) {
+function hook__field_storage_create_bundle($bundle) {
 }
 
 /**
@@ -1175,7 +1175,7 @@ function hook_field_storage_create_bundle($bundle) {
  * @param $bundle_new
  *   The new name of the bundle.
  */
-function hook_field_storage_rename_bundle($bundle_old, $bundle_new) {
+function hook__field_storage_rename_bundle($bundle_old, $bundle_new) {
 }
 
 /**
@@ -1184,7 +1184,7 @@ function hook_field_storage_rename_bundle($bundle_old, $bundle_new) {
  * @param $field
  *   The field structure being created.
  */
-function hook_field_storage_create_field($field) {
+function hook__field_storage_create_field($field) {
 }
 
 /**
@@ -1193,7 +1193,7 @@ function hook_field_storage_create_field($field) {
  * @param $field_name
  *   The name of the field being deleted.
  */
-function hook_field_storage_delete_field($field_name) {
+function hook__field_storage_delete_field($field_name) {
 }
 
 /**
@@ -1204,7 +1204,7 @@ function hook_field_storage_delete_field($field_name) {
  * @param $bundle
  *   The name of the bundle in the new instance.
  */
-function hook_field_storage_delete_instance($field_name, $bundle) {
+function hook__field_storage_delete_instance($field_name, $bundle) {
 }
 
 /**
@@ -1231,7 +1231,7 @@ function hook_field_storage_delete_instance($field_name, $bundle) {
  * @param $field
  *   The field just created.
  */
-function hook_field_create_field($field) {
+function hook__field_create_field($field) {
 }
 
 /**
@@ -1243,7 +1243,7 @@ function hook_field_create_field($field) {
  * @param $instance
  *   The instance just created.
  */
-function hook_field_create_instance($instance) {
+function hook__field_create_instance($instance) {
 }
 
 /**
@@ -1256,7 +1256,7 @@ function hook_field_create_instance($instance) {
  * @param $field
  *   The field being deleted.
  */
-function hook_field_delete_field($field) {
+function hook__field_delete_field($field) {
 }
 
 
@@ -1271,7 +1271,7 @@ function hook_field_delete_field($field) {
  * @param $instance
  *   The instance just updated.
  */
-function hook_field_update_instance($instance) {
+function hook__field_update_instance($instance) {
 }
 
 /**
@@ -1284,7 +1284,7 @@ function hook_field_update_instance($instance) {
  * @param $instance
  *   The instance just updated.
  */
-function hook_field_delete_instance($instance) {
+function hook__field_delete_instance($instance) {
 }
 
 /**
@@ -1293,7 +1293,7 @@ function hook_field_delete_instance($instance) {
  * @param $field
  *   The field record just read from the database.
  */
-function hook_field_read_field($field) {
+function hook__field_read_field($field) {
 }
 
 /**
@@ -1302,7 +1302,7 @@ function hook_field_read_field($field) {
  * @param $instance
  *   The instance record just read from the database.
  */
-function hook_field_read_instance($instance) {
+function hook__field_read_instance($instance) {
 }
 
 /**
@@ -1320,7 +1320,7 @@ function hook_field_read_instance($instance) {
  * Whether 'build modes' is actually a 'fields' concept is to be debated
  * in a separate overhaul patch for core.
  */
-function hook_field_build_modes($obj_type) {
+function hook__field_build_modes($obj_type) {
 }
 
 /**
@@ -1338,5 +1338,5 @@ function hook_field_build_modes($obj_type) {
  *   TRUE if the operation is allowed;
  *   FALSE if the operation is denied.
  */
-function hook_field_access($op, $field, $account) {
+function hook__field_access($op, $field, $account) {
 }
diff --git a/modules/field/field.attach.inc b/modules/field/field.attach.inc
index a7efc4c..3ddc0dd 100644
--- a/modules/field/field.attach.inc
+++ b/modules/field/field.attach.inc
@@ -90,7 +90,7 @@ define('FIELD_STORAGE_INSERT', 'insert');
  * $obj_type is the type of the fieldable entity, such as 'node' or
  * 'user', and $object is the object itself. An individual object's
  * bundle, if any, is read from the object's bundle key property
- * identified by hook_fieldable_info() for $obj_type.
+ * identified by hook__fieldable_info() for $obj_type.
  *
  * Fieldable types call Field Attach API functions during their own
  * API calls; for example, node_load() calls field_attach_load(). A
@@ -102,13 +102,13 @@ define('FIELD_STORAGE_INSERT', 'insert');
  * for any object after the operation is complete, and access or
  * modify all the field, form, or display data for that object and
  * operation. For example, field_attach_view() invokes
- * hook_field_attach_view_alter(). These all-module hooks are distinct from
- * those of the Field Types API, such as hook_field_load(), that are
+ * hook__field_attach_view_alter(). These all-module hooks are distinct from
+ * those of the Field Types API, such as hook__field_load(), that are
  * only invoked for the module that defines a specific field type.
  *
  * field_attach_load(), field_attach_insert(), and
  * field_attach_update() also define pre-operation hooks,
- * e.g. hook_field_attach_pre_load(). These hooks run before the
+ * e.g. hook__field_attach_pre_load(). These hooks run before the
  * corresponding Field Storage API and Field Type API operations.
  * They allow modules to define additional storage locations
  * (e.g. denormalizing, mirroring) for field data on a per-field
@@ -540,12 +540,12 @@ function field_attach_load($obj_type, $objects, $age = FIELD_LOAD_CURRENT, $opti
   // Fetch other objects from their storage location.
   if ($queried_objects) {
     // The invoke order is:
-    // - hook_field_attach_pre_load()
-    // - storage engine's hook_field_storage_load()
-    // - field-type module's hook_field_load()
-    // - hook_field_attach_load()
+    // - hook__field_attach_pre_load()
+    // - storage engine's hook__field_storage_load()
+    // - field-type module's hook__field_load()
+    // - hook__field_attach_load()
 
-    // Invoke hook_field_attach_pre_load(): let any module load field
+    // Invoke hook__field_attach_pre_load(): let any module load field
     // data before the storage engine, accumulating along the way.
     $skip_fields = array();
     foreach (module_implements('field_attach_pre_load') as $module) {
@@ -553,14 +553,14 @@ function field_attach_load($obj_type, $objects, $age = FIELD_LOAD_CURRENT, $opti
       $function($obj_type, $queried_objects, $age, $skip_fields, $options);
     }
 
-    // Invoke the storage engine's hook_field_storage_load(): the field storage
+    // Invoke the storage engine's hook__field_storage_load(): the field storage
     // engine loads the rest.
     module_invoke(variable_get('field_storage_module', 'field_sql_storage'), 'field_storage_load', $obj_type, $queried_objects, $age, $skip_fields, $options);
 
-    // Invoke field-type module's hook_field_load().
+    // Invoke field-type module's hook__field_load().
     _field_invoke_multiple('load', $obj_type, $queried_objects, $age, $options);
 
-    // Invoke hook_field_attach_load(): let other modules act on loading the
+    // Invoke hook__field_attach_load(): let other modules act on loading the
     // object.
     foreach (module_implements('field_attach_load') as $module) {
       $function = $module . '__field_attach_load';
@@ -650,7 +650,7 @@ function field_attach_validate($obj_type, $object) {
  * #element_validate property during normal form validation.
  * - Field validation steps are common to a given field type, independently of
  * the specific widget being used in a given form. They are defined in the
- * field type's implementation of hook_field_validate().
+ * field type's implementation of hook__field_validate().
  *
  * This function performs field validation in the context of a form
  * submission. It converts field validation errors into form errors
@@ -849,7 +849,7 @@ function field_attach_delete_revision($obj_type, $object) {
  *
  * Note that the query 'conditions' only apply to the stored values.
  * In a regular field_attach_load() call, field values additionally go through
- * hook_field_load() and hook_field_attach_load() invocations, which can add
+ * hook__field_load() and hook__field_attach_load() invocations, which can add
  * to or affect the raw stored values. The results of field_attach_query()
  * might therefore differ from what could be expected by looking at a regular,
  * fully loaded object.
diff --git a/modules/field/field.crud.inc b/modules/field/field.crud.inc
index 7bd0845..f430f35 100644
--- a/modules/field/field.crud.inc
+++ b/modules/field/field.crud.inc
@@ -42,7 +42,7 @@
  *     in $object->$field_name.
  * - type (string)
  *     The type of the field, such as 'text' or 'image'. Field types
- *     are defined by modules that implement hook_field_info().
+ *     are defined by modules that implement hook__field_info().
  * - cardinality (integer)
  *     The number of values the field can hold. Legal values are any
  *     positive integer or FIELD_CARDINALITY_UNLIMITED.
@@ -118,7 +118,7 @@
  *     for the field when used by this bundle.
  *     - type (string)
  *         The type of the widget, such as text_textfield. Widget types
- *         are defined by modules that implement hook_field_widget_info().
+ *         are defined by modules that implement hook__field_widget_info().
  *     - settings (array)
  *         A sub-array of key/value pairs of widget-type-specific settings.
  *         Each field widget type module defines and documents its own
@@ -167,7 +167,7 @@
  * @{
  * Create, update, and delete Field API fields, bundles, and instances.
  *
- * Modules use this API, often in hook_install(), to create custom
+ * Modules use this API, often in hook__install(), to create custom
  * data structures. UI modules will use it to create a user interface.
  *
  * The Field CRUD API uses
@@ -186,14 +186,14 @@
  *   - cardinality: 1
  *   - locked: FALSE
  *   - indexes: the field-type indexes, specified by the field type's
- *     hook_field_schema(). The indexes specified in $field are added
+ *     hook__field_schema(). The indexes specified in $field are added
  *     to those default indexes. It is possible to override the
  *     definition of a field-type index by providing an index with the
  *     same name, or to remove it by redefining it as an empty array
  *     of columns. Overriding field-type indexes should be done
  *     carefully, for it might seriously affect the site's performance.
  *   - settings: each omitted setting is given the default value defined in
- *     hook_field_info().
+ *     hook__field_info().
  * @return
  *   The $field structure with the id property filled in.
  * @throw
@@ -406,18 +406,18 @@ function field_delete_field($field_name) {
  *   - required: FALSE
  *   - default_value_function: empty string
  *   - settings: each omitted setting is given the default value specified in
- *     hook_field_info().
+ *     hook__field_info().
  *   - widget:
- *     - type: the default widget specified in hook_field_info().
+ *     - type: the default widget specified in hook__field_info().
  *     - settings: each omitted setting is given the default value specified in
- *       hook_field_widget_info().
+ *       hook__field_widget_info().
  *   - display:
  *     Settings for the 'full' build mode will be added, and each build mode
  *     will be completed with the follwong default values:
  *     - label: 'above'
- *     - type: the default formatter specified in hook_field_info().
+ *     - type: the default formatter specified in hook__field_info().
  *     - settings: each omitted setting is given the default value specified in
- *       hook_field_formatter_info().
+ *       hook__field_formatter_info().
  * @return
  *   The $instance structure with the id property filled in.
  * @throw
@@ -704,15 +704,15 @@ function field_delete_instance($field_name, $bundle) {
  *
  * Deleting field data items for an object with field_attach_delete() involves
  * three separate operations:
- * - Invoking the Field Type API hook_field_delete() for each field on the
+ * - Invoking the Field Type API hook__field_delete() for each field on the
  * object. The hook for each field type receives the object and the specific
  * field being deleted. A file field module might use this hook to delete
  * uploaded files from the filesystem.
- * - Invoking the Field Storage API hook_field_storage_delete() to remove
+ * - Invoking the Field Storage API hook__field_storage_delete() to remove
  * data from the primary field storage. The hook implementation receives the
  * object being deleted and deletes data for all of the object's bundle's
  * fields.
- * - Invoking the global Field Attach API hook_field_attach_delete() for all
+ * - Invoking the global Field Attach API hook__field_attach_delete() for all
  * modules that implement it. Each hook implementation receives the object
  * being deleted and can operate on whichever subset of the object's bundle's
  * fields it chooses to.
@@ -834,7 +834,7 @@ function field_purge_batch($batch_size) {
  *   The deleted field instance whose data is being purged.
  */
 function field_purge_data($obj_type, $object, $field, $instance) {
-  // Each field type's hook_field_delete() only expects to operate on a single
+  // Each field type's hook__field_delete() only expects to operate on a single
   // field at a time, so we can use it as-is for purging.
   $options = array('field_id' => $instance['field_id'], 'deleted' => TRUE);
   _field_invoke('delete', $obj_type, $object, $dummy, $dummy, $options);
diff --git a/modules/field/field.default.inc b/modules/field/field.default.inc
index 063ff54..ff81c34 100644
--- a/modules/field/field.default.inc
+++ b/modules/field/field.default.inc
@@ -81,7 +81,7 @@ function field_default_view($obj_type, $object, $field, $instance, $items, $buil
       '#theme' => 'field',
       '#weight' => $display['weight'],
       '#title' => check_plain(t($instance['label'])),
-      '#access' => field_access('view', $field),
+      '#access' => field__access('view', $field),
       '#label_display' => $label_display,
       '#build_mode' => $build_mode,
       '#single' => $single,
diff --git a/modules/field/field.form.inc b/modules/field/field.form.inc
index 97a5f18..d553e2b 100644
--- a/modules/field/field.form.inc
+++ b/modules/field/field.form.inc
@@ -22,7 +22,7 @@ function field_default_form($obj_type, $object, $field, $instance, $items, &$for
   // If the field is not accessible, don't add anything. The field value will
   // be left unchanged on update, or considered empty on insert (default value
   // will be inserted if applicable).
-  if (!field_access('edit', $field)) {
+  if (!field__access('edit', $field)) {
     return $addition;
   }
 
@@ -304,7 +304,7 @@ function field_default_form_errors($obj_type, $object, $field, $instance, $items
         }
         else {
           // Make sure that errors are reported (even incorrectly flagged) if
-          // the widget module fails to implement hook_field_widget_error().
+          // the widget module fails to implement hook__field_widget_error().
           form_error($error_element, $error['error']);
         }
       }
diff --git a/modules/field/field.info.inc b/modules/field/field.info.inc
index 06eb107..d8c9dd5 100644
--- a/modules/field/field.info.inc
+++ b/modules/field/field.info.inc
@@ -38,24 +38,24 @@ function _field_info_cache_clear() {
  *   If $reset is TRUE, nothing.
  *   If $reset is FALSE, an array containing the following elements:
  *
- * field types: array of hook_field_info() results, keyed by field_type.
+ * field types: array of hook__field_info() results, keyed by field_type.
  *   * label, description, settings, instance_settings, default_widget,
- *     default_formatter, behaviors: from hook_field_info()
+ *     default_formatter, behaviors: from hook__field_info()
  *   * module: the module that exposes the field type
  *
- * widget types: array of hook_field_widget_info() results, keyed by
+ * widget types: array of hook__field_widget_info() results, keyed by
  * widget_type.
- *   * label, field types, settings, behaviors: from hook_field_widget_info()
+ *   * label, field types, settings, behaviors: from hook__field_widget_info()
  *   * module: module that exposes the widget type
  *
- * formatter types: array of hook_field_formatter_info() results, keyed by
+ * formatter types: array of hook__field_formatter_info() results, keyed by
  * formatter_type.
- *   * label, field types, behaviors: from hook_field_formatter_info()
+ *   * label, field types, behaviors: from hook__field_formatter_info()
  *   * module: module that exposes the formatter type
 
- * fieldable types: array of hook_fieldable_info() results, keyed by entity_type.
+ * fieldable types: array of hook__fieldable_info() results, keyed by entity_type.
  *   * name, id key, revision key, bundle key, cacheable, bundles: from
- *     hook_fieldable_info()
+ *     hook__fieldable_info()
  *   * module: module that exposes the entity type
  */
 function _field_info_collate_types($reset = FALSE) {
@@ -331,13 +331,13 @@ function field_behaviors_formatter($op, $display) {
 }
 
 /**
- * Return hook_field_info() data.
+ * Return hook__field_info() data.
  *
  * @param $field_type
  *   (optional) A field type name. If ommitted, all field types will be
  *   returned.
  * @return
- *   Either a field type description, as provided by hook_field_info(), or an
+ *   Either a field type description, as provided by hook__field_info(), or an
  *   array of all existing field types, keyed by field type name.
  */
 function field_info_field_types($field_type = NULL) {
@@ -354,14 +354,14 @@ function field_info_field_types($field_type = NULL) {
 }
 
 /**
- * Return hook_field_widget_info() data.
+ * Return hook__field_widget_info() data.
  *
  * @param $widget_type
  *   (optional) A widget type name. If ommitted, all widget types will be
  *   returned.
  * @return
  *   Either a widget type description, as provided by
- *   hook_field_widget_info(), or an array of all existing widget
+ *   hook__field_widget_info(), or an array of all existing widget
  *   types, keyed by widget type name.
  */
 function field_info_widget_types($widget_type = NULL) {
@@ -378,13 +378,13 @@ function field_info_widget_types($widget_type = NULL) {
 }
 
 /**
- * Return hook_field_formatter_info() data.
+ * Return hook__field_formatter_info() data.
  *
  * @param $formatter_type
  *   (optional) A formatter type name. If ommitted, all formatter types will be
  *   returned.
  * @return
- *   Either a formatter type description, as provided by hook_field_formatter_info(),
+ *   Either a formatter type description, as provided by hook__field_formatter_info(),
  *   or an array of all existing widget types, keyed by widget type name.
  */
 function field_info_formatter_types($formatter_type = NULL) {
@@ -401,13 +401,13 @@ function field_info_formatter_types($formatter_type = NULL) {
 }
 
 /**
- * Return hook_fieldable_info() data.
+ * Return hook__fieldable_info() data.
  *
  * @param $obj_type
  *   (optional) A fieldable type name. If ommitted, all fieldable types will be
  *   returned.
  * @return
- *   Either a fieldable type description, as provided by hook_fieldable_info(),
+ *   Either a fieldable type description, as provided by hook__fieldable_info(),
  *   or an array of all existing fieldable types, keyed by fieldable type name.
  */
 function field_info_fieldable_types($obj_type = NULL) {
@@ -536,7 +536,7 @@ function field_info_instance($field_name, $bundle_name) {
  * @param $type
  *   A field type name.
  * @return
- *   The field type's default settings, as provided by hook_field_info(), or an
+ *   The field type's default settings, as provided by hook__field_info(), or an
  *   empty array.
  */
 function field_info_field_settings($type) {
@@ -551,7 +551,7 @@ function field_info_field_settings($type) {
  *   A field type name.
  * @return
  *   The field type's default instance settings, as provided by
- *   hook_field_info(), or an empty array.
+ *   hook__field_info(), or an empty array.
  */
 function field_info_instance_settings($type) {
   $info = field_info_field_types($type);
@@ -564,7 +564,7 @@ function field_info_instance_settings($type) {
  * @param $type
  *   A widget type name.
  * @return
- *   The field type's default settings, as provided by hook_field_info(), or an
+ *   The field type's default settings, as provided by hook__field_info(), or an
  *   empty array.
  */
 function field_info_widget_settings($type) {
@@ -579,7 +579,7 @@ function field_info_widget_settings($type) {
  *   A field formatter type name.
  * @return
  *   The field formatter's default settings, as provided by
- *   hook_field_info(), or an empty array.
+ *   hook__field_info(), or an empty array.
  */
 function field_info_formatter_settings($type) {
   $info = field_info_formatter_types($type);
diff --git a/modules/field/field.install b/modules/field/field.install
index f9ab498..17a160c 100644
--- a/modules/field/field.install
+++ b/modules/field/field.install
@@ -7,16 +7,16 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function field_install() {
+function field__install() {
   drupal_install_schema('field');
 }
 
 /**
  * Implement hook_schema.
  */
-function field_schema() {
+function field__schema() {
   // Static (meta) tables.
   $schema['field_config'] = array(
     'fields' => array(
@@ -82,7 +82,7 @@ function field_schema() {
       'field_name' => array('field_name'),
       // used by field_read_fields()
       'active_deleted' => array('active', 'deleted'),
-      // used by field_modules_disabled()
+      // used by field__modules_disabled()
       'module' => array('module'),
       // used by field_associate_fields()
       'type' => array('type'),
@@ -129,7 +129,7 @@ function field_schema() {
       'field_name_bundle' => array('field_name', 'bundle'),
       // used by field_read_instances()
       'widget_active_deleted' => array('widget_active', 'deleted'),
-      // used by field_modules_disabled()
+      // used by field__modules_disabled()
       'widget_module' => array('widget_module'),
       // used by field_associate_fields()
       'widget_type' => array('widget_type'),
diff --git a/modules/field/field.module b/modules/field/field.module
index cb64dc8..8a32c44 100644
--- a/modules/field/field.module
+++ b/modules/field/field.module
@@ -36,7 +36,7 @@ require(DRUPAL_ROOT . '/modules/field/field.attach.inc');
  *
  * - @link field_crud Field CRUD API @endlink. Create, updates, and
  *   deletes fields, bundles (a.k.a. "content types"), and instances.
- *   Modules use this API, often in hook_install(), to create
+ *   Modules use this API, often in hook__install(), to create
  *   custom data structures. The Content Construction Kit
  *   user-interface module uses this API for its major functionality.
  *
@@ -124,14 +124,14 @@ class FieldException extends Exception {}
 /**
  * Implement hook_flush_caches.
  */
-function field_flush_caches() {
+function field__flush_caches() {
   return array('cache_field');
 }
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function field_help($path, $arg) {
+function field__help($path, $arg) {
   switch ($path) {
     case 'admin/help#field':
       $output = '<p>' . t('The Field API allows custom data fields to be attached to Drupal objects and takes care of storing, loading, editing, and rendering field data. Any object type (node, user, etc.) can use the Field API to make itself "fieldable" and thus allow fields to be attached to it.') . '</p>';
@@ -141,16 +141,16 @@ function field_help($path, $arg) {
 }
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function field_init() {
+function field__init() {
   drupal_add_css(drupal_get_path('module', 'field') . '/theme/field.css');
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function field_menu() {
+function field__menu() {
   $items = array();
 
   // Callback for AHAH add more buttons.
@@ -164,9 +164,9 @@ function field_menu() {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function field_theme() {
+function field__theme() {
   $path = drupal_get_path('module', 'field') . '/theme';
 
   return array(
@@ -182,26 +182,26 @@ function field_theme() {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  *
  * Purges some deleted Field API data, if any exists.
  */
-function field_cron() {
+function field__cron() {
   $limit = variable_get('field_purge_batch_size', 10);
   field_purge_batch($limit);
 }
 
 /**
- * Implement hook_modules_installed().
+ * Implement hook__modules_installed().
  */
-function field_modules_installed($modules) {
+function field__modules_installed($modules) {
   field_cache_clear();
 }
 
 /**
- * Implement hook_modules_uninstalled().
+ * Implement hook__modules_uninstalled().
  */
-function field_modules_uninstalled($modules) {
+function field__modules_uninstalled($modules) {
   module_load_include('inc', 'field', 'field.crud');
   foreach ($modules as $module) {
     // TODO D7: field_module_delete is not yet implemented
@@ -210,9 +210,9 @@ function field_modules_uninstalled($modules) {
 }
 
 /**
- * Implement hook_modules_enabled().
+ * Implement hook__modules_enabled().
  */
-function field_modules_enabled($modules) {
+function field__modules_enabled($modules) {
   foreach ($modules as $module) {
     field_associate_fields($module);
   }
@@ -220,9 +220,9 @@ function field_modules_enabled($modules) {
 }
 
 /**
- * Implement hook_modules_disabled().
+ * Implement hook__modules_disabled().
  */
-function field_modules_disabled($modules) {
+function field__modules_disabled($modules) {
   foreach ($modules as $module) {
     db_update('field_config')
       ->fields(array('active' => 0))
@@ -420,7 +420,7 @@ function field_format($obj_type, $object, $field, $item, $formatter_type = NULL,
     $field = field_info_field($field);
   }
 
-  if (field_access('view', $field)) {
+  if (field__access('view', $field)) {
     $field_type = field_info_field_types($field['type']);
 
     // We need $field, $instance, $obj_type, $object to be able to display a value...
@@ -538,7 +538,7 @@ function field_view_field($obj_type, $object, $field, $instance, $build_mode = '
  *   TRUE if the operation is allowed;
  *   FALSE if the operation is denied.
  */
-function field_access($op, $field, $account = NULL) {
+function field__access($op, $field, $account = NULL) {
   global $user;
 
   if (is_null($account)) {
diff --git a/modules/field/field.test b/modules/field/field.test
index fb46008..a58b601 100644
--- a/modules/field/field.test
+++ b/modules/field/field.test
@@ -55,8 +55,8 @@ class FieldAttachTestCase extends DrupalWebTestCase {
    * updates random field data and then loads and verifies the data.
    */
   function testFieldAttachSaveLoad() {
-    // Configure the instance so that we test hook_field_load() (see
-    // field_test_field_load() in field_test.module).
+    // Configure the instance so that we test hook__field_load() (see
+    // field_test__field_load() in field_test.module).
     $this->instance['settings']['test_hook_field_load'] = TRUE;
     field_update_instance($this->instance);
 
@@ -91,7 +91,7 @@ class FieldAttachTestCase extends DrupalWebTestCase {
     for ($delta = 0; $delta < $this->field['cardinality']; $delta++) {
       // The field value loaded matches the one inserted or updated.
       $this->assertEqual($entity->{$this->field_name}[$delta]['value'] , $values[$current_revision][$delta]['value'], t('Currrent revision: expected value %delta was found.', array('%delta' => $delta)));
-      // The value added in hook_field_load() is found.
+      // The value added in hook__field_load() is found.
       $this->assertEqual($entity->{$this->field_name}[$delta]['additional_key'], 'additional_value', t('Currrent revision: extra information for value %delta was found', array('%delta' => $delta)));
     }
 
@@ -104,7 +104,7 @@ class FieldAttachTestCase extends DrupalWebTestCase {
       for ($delta = 0; $delta < $this->field['cardinality']; $delta++) {
         // The field value loaded matches the one inserted or updated.
         $this->assertEqual($entity->{$this->field_name}[$delta]['value'], $values[$revision_id][$delta]['value'], t('Revision %revision_id: expected value %delta was found.', array('%revision_id' => $revision_id, '%delta' => $delta)));
-        // The value added in hook_field_load() is found.
+        // The value added in hook__field_load() is found.
         $this->assertEqual($entity->{$this->field_name}[$delta]['additional_key'], 'additional_value', t('Revision %revision_id: extra information for value %delta was found', array('%revision_id' => $revision_id, '%delta' => $delta)));
       }
     }
@@ -142,8 +142,8 @@ class FieldAttachTestCase extends DrupalWebTestCase {
           'field_name' => $field_names[$i],
           'bundle' => $bundles[$bundle],
           'settings' => array(
-            // Configure the instance so that we test hook_field_load()
-            // (see field_test_field_load() in field_test.module).
+            // Configure the instance so that we test hook__field_load()
+            // (see field_test__field_load() in field_test.module).
             'test_hook_field_load' => TRUE,
           ),
         );
@@ -170,7 +170,7 @@ class FieldAttachTestCase extends DrupalWebTestCase {
       foreach ($instances as $field_name => $instance) {
         // The field value loaded matches the one inserted.
         $this->assertEqual($entity->{$field_name}[0]['value'], $values[$index][$field_name], t('Entity %index: expected value was found.', array('%index' => $index)));
-        // The value added in hook_field_load() is found.
+        // The value added in hook__field_load() is found.
         $this->assertEqual($entity->{$field_name}[0]['additional_key'], 'additional_value', t('Entity %index: extra information was found', array('%index' => $index)));
       }
     }
@@ -580,7 +580,7 @@ class FieldAttachTestCase extends DrupalWebTestCase {
 
   function testFieldAttachCreateRenameBundle() {
     // Create a new bundle. This has to be initiated by the module so that its
-    // hook_fieldable_info() is consistent.
+    // hook__fieldable_info() is consistent.
     $new_bundle = 'test_bundle_' . drupal_strtolower($this->randomName());
     field_test_create_bundle($new_bundle);
 
@@ -601,7 +601,7 @@ class FieldAttachTestCase extends DrupalWebTestCase {
     $this->assertEqual(count($entity->{$this->field_name}), $this->field['cardinality'], "Data are retrieved for the new bundle");
 
     // Rename the bundle. This has to be initiated by the module so that its
-    // hook_fieldable_info() is consistent.
+    // hook__fieldable_info() is consistent.
     $new_bundle = 'test_bundle_' . drupal_strtolower($this->randomName());
     field_test_rename_bundle($this->instance['bundle'], $new_bundle);
 
@@ -617,7 +617,7 @@ class FieldAttachTestCase extends DrupalWebTestCase {
 
   function testFieldAttachDeleteBundle() {
     // Create a new bundle. This has to be initiated by the module so that its
-    // hook_fieldable_info() is consistent.
+    // hook__fieldable_info() is consistent.
     $new_bundle = 'test_bundle_' . drupal_strtolower($this->randomName());
     field_test_create_bundle($new_bundle);
 
@@ -657,7 +657,7 @@ class FieldAttachTestCase extends DrupalWebTestCase {
     $this->assertEqual(count($entity->{$field_name}), 1, "Second field got loaded");
 
     // Delete the bundle. This has to be initiated by the module so that its
-    // hook_fieldable_info() is consistent.
+    // hook__fieldable_info() is consistent.
     field_test_delete_bundle($this->instance['bundle']);
 
     // Verify no data gets loaded
@@ -883,9 +883,9 @@ class FieldInfoTestCase extends DrupalWebTestCase {
    */
   function testFieldInfo() {
     // Test that field_test module's fields, widgets, and formatters show up.
-    $field_test_info = field_test_field_info();
-    $formatter_info = field_test_field_formatter_info();
-    $widget_info = field_test_field_widget_info();
+    $field_test_info = field_test__field_info();
+    $formatter_info = field_test__field_formatter_info();
+    $widget_info = field_test__field_widget_info();
 
     $info = field_info_field_types();
     foreach ($field_test_info as $t_key => $field_type) {
@@ -1041,18 +1041,18 @@ class FieldInfoTestCase extends DrupalWebTestCase {
    * Test that the field_info settings convenience functions work.
    */
   function testSettingsInfo() {
-    $info = field_test_field_info();
+    $info = field_test__field_info();
     foreach ($info as $type => $data) {
       $this->assertIdentical(field_info_field_settings($type), $data['settings'], "field_info_field_settings returns {$type}'s field settings");
       $this->assertIdentical(field_info_instance_settings($type), $data['instance_settings'], "field_info_field_settings returns {$type}'s field instance settings");
     }
 
-    $info = field_test_field_widget_info();
+    $info = field_test__field_widget_info();
     foreach ($info as $type => $data) {
       $this->assertIdentical(field_info_widget_settings($type), $data['settings'], "field_info_widget_settings returns {$type}'s widget settings");
     }
 
-    $info = field_test_field_formatter_info();
+    $info = field_test__field_formatter_info();
     foreach ($info as $type => $data) {
       $this->assertIdentical(field_info_formatter_settings($type), $data['settings'], "field_info_formatter_settings returns {$type}'s formatter settings");
     }
@@ -1377,7 +1377,7 @@ class FieldCrudTestCase extends DrupalWebTestCase {
     field_test_memorize();
     $field_definition = field_create_field($field_definition);
     $mem = field_test_memorize();
-    $this->assertIdentical($mem['field_test_field_create_field'][0][0], $field_definition, 'hook_field_create_field() called with correct arguments.');
+    $this->assertIdentical($mem['field_test_field_create_field'][0][0], $field_definition, 'hook__field_create_field() called with correct arguments.');
 
     // Read the raw record from the {field_config_instance} table.
     $result = db_query('SELECT * FROM {field_config} WHERE field_name = :field_name', array(':field_name' => $field_definition['field_name']));
@@ -1966,7 +1966,7 @@ class FieldBulkDeleteTestCase extends DrupalWebTestCase {
       $this->assertEqual($count ? count($found['test_entity']) : count($found), $count, 'Correct number of objects found after purging 2');
     }
 
-    // hook_field_delete() was called on a pseudo-object for each object. Each
+    // hook__field_delete() was called on a pseudo-object for each object. Each
     // pseudo object has a $field property that matches the original object,
     // but no others.
     $mem = field_test_memorize();
@@ -1975,7 +1975,7 @@ class FieldBulkDeleteTestCase extends DrupalWebTestCase {
     $count = count($stubs);
     foreach ($mem['field_test_field_delete'] as $args) {
       $obj = $args[1];
-      $this->assertEqual($stubs[$obj->ftid], $obj, 'hook_field_delete() called with the correct stub');
+      $this->assertEqual($stubs[$obj->ftid], $obj, 'hook__field_delete() called with the correct stub');
       unset($stubs[$obj->ftid]);
     }
     $this->assertEqual(count($stubs), $count-10, 'hook_field_delete was called with each object once');
diff --git a/modules/field/modules/field_sql_storage/field_sql_storage.install b/modules/field/modules/field_sql_storage/field_sql_storage.install
index 11c4e87..5aa40e6 100644
--- a/modules/field/modules/field_sql_storage/field_sql_storage.install
+++ b/modules/field/modules/field_sql_storage/field_sql_storage.install
@@ -7,23 +7,23 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function field_sql_storage_install() {
+function field_sql_storage__install() {
   drupal_install_schema('field_sql_storage');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function field_sql_storage_uninstall() {
+function field_sql_storage__uninstall() {
   drupal_uninstall_schema('field_sql_storage');
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function field_sql_storage_schema() {
+function field_sql_storage__schema() {
   $schema = array();
 
   // Static (meta-data) tables.
diff --git a/modules/field/modules/field_sql_storage/field_sql_storage.module b/modules/field/modules/field_sql_storage/field_sql_storage.module
index d77526b..735a8a1 100644
--- a/modules/field/modules/field_sql_storage/field_sql_storage.module
+++ b/modules/field/modules/field_sql_storage/field_sql_storage.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function field_sql_storage_help($path, $arg) {
+function field_sql_storage__help($path, $arg) {
   switch ($path) {
     case 'admin/help#field_sql_storage':
       $output = '<p>' . t('The Field SQL Storage module stores Field API data in the database.  It is the default field storage module, but other field storage modules may be available in the contributions repository.') . '</p>';
@@ -178,9 +178,9 @@ function _field_sql_storage_schema($field) {
 }
 
 /**
- * Implement hook_field_storage_create_field().
+ * Implement hook__field_storage_create_field().
  */
-function field_sql_storage_field_storage_create_field($field) {
+function field_sql_storage__field_storage_create_field($field) {
   $schema = _field_sql_storage_schema($field);
   foreach ($schema as $name => $table) {
     db_create_table($ret, $name, $table);
@@ -188,9 +188,9 @@ function field_sql_storage_field_storage_create_field($field) {
 }
 
 /**
- * Implement hook_field_storage_delete_field().
+ * Implement hook__field_storage_delete_field().
  */
-function field_sql_storage_field_storage_delete_field($field_name) {
+function field_sql_storage__field_storage_delete_field($field_name) {
   // Mark all data associated with the field for deletion.
   $field = field_info_field($field_name);
   $table = _field_sql_storage_tablename($field);
@@ -200,9 +200,9 @@ function field_sql_storage_field_storage_delete_field($field_name) {
 }
 
 /**
- * Implement hook_field_storage_load().
+ * Implement hook__field_storage_load().
  */
-function field_sql_storage_field_storage_load($obj_type, $objects, $age, $skip_fields, $options) {
+function field_sql_storage__field_storage_load($obj_type, $objects, $age, $skip_fields, $options) {
   $etid = _field_sql_storage_etid($obj_type);
   $load_current = $age == FIELD_LOAD_CURRENT;
 
@@ -265,9 +265,9 @@ function field_sql_storage_field_storage_load($obj_type, $objects, $age, $skip_f
 }
 
 /**
- * Implement hook_field_storage_write().
+ * Implement hook__field_storage_write().
  */
-function field_sql_storage_field_storage_write($obj_type, $object, $op, $skip_fields) {
+function field_sql_storage__field_storage_write($obj_type, $object, $op, $skip_fields) {
   list($id, $vid, $bundle) = field_attach_extract_ids($obj_type, $object);
   $etid = _field_sql_storage_etid($obj_type);
 
@@ -340,11 +340,11 @@ function field_sql_storage_field_storage_write($obj_type, $object, $op, $skip_fi
 }
 
 /**
- * Implement hook_field_storage_delete().
+ * Implement hook__field_storage_delete().
  *
  * This function deletes data for all fields for an object from the database.
  */
-function field_sql_storage_field_storage_delete($obj_type, $object) {
+function field_sql_storage__field_storage_delete($obj_type, $object) {
   list($id, $vid, $bundle) = field_attach_extract_ids($obj_type, $object);
   $etid = _field_sql_storage_etid($obj_type);
 
@@ -379,9 +379,9 @@ function field_sql_storage_field_storage_purge($obj_type, $object, $field, $inst
 }
 
 /**
- * Implement hook_field_storage_query().
+ * Implement hook__field_storage_query().
  */
-function field_sql_storage_field_storage_query($field_id, $conditions, $count, &$cursor, $age) {
+function field_sql_storage__field_storage_query($field_id, $conditions, $count, &$cursor, $age) {
   $load_current = $age == FIELD_LOAD_CURRENT;
 
   $field = field_info_field_by_id($field_id);
@@ -479,11 +479,11 @@ function field_sql_storage_field_storage_query($field_id, $conditions, $count, &
 }
 
 /**
- * Implement hook_field_storage_delete_revision().
+ * Implement hook__field_storage_delete_revision().
  *
  * This function actually deletes the data from the database.
  */
-function field_sql_storage_field_storage_delete_revision($obj_type, $object) {
+function field_sql_storage__field_storage_delete_revision($obj_type, $object) {
   list($id, $vid, $bundle) = field_attach_extract_ids($obj_type, $object);
   $etid = _field_sql_storage_etid($obj_type);
 
@@ -503,11 +503,11 @@ function field_sql_storage_field_storage_delete_revision($obj_type, $object) {
 }
 
 /**
- * Implement hook_field_storage_delete_instance().
+ * Implement hook__field_storage_delete_instance().
  *
  * This function simply marks for deletion all data associated with the field.
  */
-function field_sql_storage_field_storage_delete_instance($field_name, $bundle) {
+function field_sql_storage__field_storage_delete_instance($field_name, $bundle) {
   $field = field_read_field($field_name);
   $table_name = _field_sql_storage_tablename($field);
   $revision_name = _field_sql_storage_revision_tablename($field);
@@ -522,9 +522,9 @@ function field_sql_storage_field_storage_delete_instance($field_name, $bundle) {
 }
 
 /**
- * Implement hook_field_storage_rename_bundle().
+ * Implement hook__field_storage_rename_bundle().
  */
-function field_sql_storage_field_storage_rename_bundle($bundle_old, $bundle_new) {
+function field_sql_storage__field_storage_rename_bundle($bundle_old, $bundle_new) {
   $instances = field_info_instances($bundle_old);
   foreach ($instances as $instance) {
     $field = field_read_field($instance['field_name']);
diff --git a/modules/field/modules/list/list.module b/modules/field/modules/list/list.module
index 8f78c38..308c5fa 100644
--- a/modules/field/modules/list/list.module
+++ b/modules/field/modules/list/list.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function list_theme() {
+function list__theme() {
   return array(
     'field_formatter_list_default' => array(
       'arguments' => array('element' => NULL),
@@ -21,9 +21,9 @@ function list_theme() {
 }
 
 /**
- * Implement hook_field_info().
+ * Implement hook__field_info().
  */
-function list_field_info() {
+function list__field_info() {
   return array(
     'list' => array(
       'label' => t('List'),
@@ -57,9 +57,9 @@ function list_field_info() {
 }
 
 /**
- * Implement hook_field_schema().
+ * Implement hook__field_schema().
  */
-function list_field_schema($field) {
+function list__field_schema($field) {
   switch ($field['type']) {
     case 'list_text':
       $columns = array(
@@ -98,12 +98,12 @@ function list_field_schema($field) {
 }
 
 /**
- * Implement hook_field_validate().
+ * Implement hook__field_validate().
  *
  * Possible error codes:
  * - 'list_illegal_value': The value is not part of the list of allowed values.
  */
-function list_field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
+function list__field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
   $allowed_values = list_allowed_values($field);
   foreach ($items as $delta => $item) {
     if (!empty($item['value'])) {
@@ -118,9 +118,9 @@ function list_field_validate($obj_type, $object, $field, $instance, $items, &$er
 }
 
 /**
- * Implement hook_field_is_empty().
+ * Implement hook__field_is_empty().
  */
-function list_field_is_empty($item, $field) {
+function list__field_is_empty($item, $field) {
   if (empty($item['value']) && (string)$item['value'] !== '0') {
     return TRUE;
   }
@@ -128,9 +128,9 @@ function list_field_is_empty($item, $field) {
 }
 
 /**
- * Implement hook_field_formatter_info().
+ * Implement hook__field_formatter_info().
  */
-function list_field_formatter_info() {
+function list__field_formatter_info() {
   return array(
     'list_default' => array(
       'label' => t('Default'),
diff --git a/modules/field/modules/number/number.module b/modules/field/modules/number/number.module
index e8d9069..62527fa 100644
--- a/modules/field/modules/number/number.module
+++ b/modules/field/modules/number/number.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function number_theme() {
+function number__theme() {
   return array(
     'number' => array('arguments' => array('element' => NULL)),
     'field_formatter_number_integer' => array('arguments' => array('element' => NULL), 'function' => 'theme_field_formatter_number'),
@@ -19,9 +19,9 @@ function number_theme() {
 }
 
 /**
- * Implement hook_field_info().
+ * Implement hook__field_info().
  */
-function number_field_info() {
+function number__field_info() {
   return array(
     'number_integer' => array(
       'label' => t('Integer'),
@@ -49,9 +49,9 @@ function number_field_info() {
 }
 
 /**
- * Implement hook_field_schema().
+ * Implement hook__field_schema().
  */
-function number_field_schema($field) {
+function number__field_schema($field) {
   switch ($field['type']) {
     case 'number_integer' :
       $columns = array(
@@ -88,13 +88,13 @@ function number_field_schema($field) {
 }
 
 /**
- * Implement hook_field_validate().
+ * Implement hook__field_validate().
  *
  * Possible error codes:
  * - 'number_min': The value is smaller than the allowed minimum value.
  * - 'number_max': The value is larger than the allowed maximum value.
  */
-function number_field_validate($obj_type, $node, $field, $instance, $items, &$errors) {
+function number__field_validate($obj_type, $node, $field, $instance, $items, &$errors) {
   foreach ($items as $delta => $item) {
     if ($item['value'] != '') {
       if (is_numeric($instance['settings']['min']) && $item['value'] < $instance['settings']['min']) {
@@ -116,7 +116,7 @@ function number_field_validate($obj_type, $node, $field, $instance, $items, &$er
 /**
  * Implement hook_content_is_empty().
  */
-function number_field_is_empty($item, $field) {
+function number__field_is_empty($item, $field) {
   if (empty($item['value']) && (string)$item['value'] !== '0') {
     return TRUE;
   }
@@ -124,9 +124,9 @@ function number_field_is_empty($item, $field) {
 }
 
 /**
- * Implement hook_field_formatter_info().
+ * Implement hook__field_formatter_info().
  */
-function number_field_formatter_info() {
+function number__field_formatter_info() {
   return array(
     'number_integer' => array(
       'label' => t('default'),
@@ -190,7 +190,7 @@ function theme_field_formatter_number($element) {
 }
 
 /**
- * Implement hook_field_widget_info().
+ * Implement hook__field_widget_info().
  *
  * Here we indicate that the Field module will handle
  * multiple values for these widgets.
@@ -200,7 +200,7 @@ function theme_field_formatter_number($element) {
  * as an example for custom modules that might do things
  * differently.
  */
-function number_field_widget_info() {
+function number__field_widget_info() {
   return array(
     'number' => array(
       'label' => t('Text field'),
@@ -210,7 +210,7 @@ function number_field_widget_info() {
 }
 
 /**
- * Implement FAPI hook_elements().
+ * Implement FAPI hook__elements().
  *
  * Any FAPI callbacks needed for individual widgets can be declared here,
  * and the element will be passed to those callbacks for processing.
@@ -221,7 +221,7 @@ function number_field_widget_info() {
  * Includes a regex to check for valid values as an additional parameter
  * the validator can use. The regex can be overridden if necessary.
  */
-function number_elements() {
+function number__elements() {
   return array(
     'number' => array(
       '#input' => TRUE,
@@ -232,7 +232,7 @@ function number_elements() {
 }
 
 /**
- * Implement hook_field_widget().
+ * Implement hook__field_widget().
  *
  * Attach a single form element to the form. It will be built out and
  * validated in the callback(s) listed in hook_elements. We build it
@@ -260,7 +260,7 @@ function number_elements() {
  * @return
  *   the form item for a single element for this field
  */
-function number_field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) {
+function number__field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) {
   $element = array(
     '#type' => $instance['widget']['type'],
     '#default_value' => isset($items[$delta]) ? $items[$delta] : NULL,
@@ -269,9 +269,9 @@ function number_field_widget(&$form, &$form_state, $field, $instance, $items, $d
 }
 
 /**
- * Implement hook_field_widget_error().
+ * Implement hook__field_widget_error().
  */
-function number_field_widget_error($element, $error) {
+function number__field_widget_error($element, $error) {
   form_error($element['value'], $error['message']);
 }
 
diff --git a/modules/field/modules/options/options.module b/modules/field/modules/options/options.module
index 8ca7ace..6c9b8e9 100644
--- a/modules/field/modules/options/options.module
+++ b/modules/field/modules/options/options.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function options_theme() {
+function options__theme() {
   return array(
     'options_select' => array(
       'arguments' => array('element' => NULL),
@@ -27,7 +27,7 @@ function options_theme() {
 }
 
 /**
- * Implement hook_field_widget_info().
+ * Implement hook__field_widget_info().
  *
  * We need custom handling of multiple values because we need
  * to combine them into a options list rather than display
@@ -39,7 +39,7 @@ function options_theme() {
  * as an example for custom modules that might do things
  * differently.
  */
-function options_field_widget_info() {
+function options__field_widget_info() {
 
   return array(
     'options_select' => array(
@@ -67,7 +67,7 @@ function options_field_widget_info() {
 }
 
 /**
- * Implement FAPI hook_elements().
+ * Implement FAPI hook__elements().
  *
  * Any FAPI callbacks needed for individual widgets can be declared here,
  * and the element will be passed to those callbacks for processing.
@@ -75,7 +75,7 @@ function options_field_widget_info() {
  * Drupal will automatically theme the element using a theme with
  * the same name as the hook_elements key.
  */
-function options_elements() {
+function options__elements() {
   return array(
     'options_select' => array(
       '#input' => TRUE,
@@ -96,9 +96,9 @@ function options_elements() {
 }
 
 /**
- * Implement hook_field_widget().
+ * Implement hook__field_widget().
  */
-function options_field_widget(&$form, &$form_state, $field, $instance, $items, $delta = NULL) {
+function options__field_widget(&$form, &$form_state, $field, $instance, $items, $delta = NULL) {
   $element = array(
     '#type' => $instance['widget']['type'],
     '#default_value' => !empty($items) ? $items : array(),
@@ -107,9 +107,9 @@ function options_field_widget(&$form, &$form_state, $field, $instance, $items, $
 }
 
 /**
- * Implement hook_field_widget_error().
+ * Implement hook__field_widget_error().
  */
-function options_field_widget_error($element, $error) {
+function options__field_widget_error($element, $error) {
   $field_key  = $element['#columns'][0];
   form_error($element[$field_key], $error['message']);
 }
@@ -257,7 +257,7 @@ function options_onoff_elements_process($element, &$form_state, $form) {
 /**
  * FAPI function to validate options element.
  */
-function options_validate($element, &$form_state) {
+function options__validate($element, &$form_state) {
   // Transpose selections from field => delta to delta => field,
   // turning cardinality selected options into cardinality parent elements.
   // Immediate parent is the delta, need to get back to parent's parent
diff --git a/modules/field/modules/text/text.module b/modules/field/modules/text/text.module
index 05343de..51b6962 100644
--- a/modules/field/modules/text/text.module
+++ b/modules/field/modules/text/text.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function text_theme() {
+function text__theme() {
   return array(
     'text_textarea' => array(
       'arguments' => array('element' => NULL),
@@ -36,7 +36,7 @@ function text_theme() {
 }
 
 /**
- * Implement hook_field_info().
+ * Implement hook__field_info().
  *
  * Field settings:
  *   - max_length: the maximum length for a varchar field.
@@ -46,7 +46,7 @@ function text_theme() {
  *     When empty and not displayed the summary will take its value from the
  *     trimmed value of the main text field.
  */
-function text_field_info() {
+function text__field_info() {
   return array(
     'text' => array(
       'label' => t('Text'),
@@ -76,9 +76,9 @@ function text_field_info() {
 }
 
 /**
- * Implement hook_field_schema().
+ * Implement hook__field_schema().
  */
-function text_field_schema($field) {
+function text__field_schema($field) {
   switch ($field['type']) {
     case 'text':
       $columns = array(
@@ -129,13 +129,13 @@ function text_field_schema($field) {
 }
 
 /**
- * Implement hook_field_validate().
+ * Implement 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.
  */
-function text_field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
+function text__field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
   foreach ($items as $delta => $item) {
     foreach (array('value' => t('full text'), 'summary' => t('summary')) as $column => $desc) {
       if (!empty($item[$column])) {
@@ -159,21 +159,21 @@ function text_field_validate($obj_type, $object, $field, $instance, $items, &$er
 }
 
 /**
- * Implement hook_field_load().
+ * Implement hook__field_load().
  *
  * Where possible, generate the sanitized version of each field early so that
  * it is cached in the field cache. This avoids looking up from the filter cache
  * separately.
- * @see text_field_sanitize().
+ * @see text__field_sanitize().
  */
-function text_field_load($obj_type, $objects, $field, $instances, &$items) {
+function text__field_load($obj_type, $objects, $field, $instances, &$items) {
   global $language;
 
   foreach ($objects as $id => $object) {
     foreach ($items[$id] as $delta => $item) {
       if (!empty($instances[$id]['settings']['text_processing'])) {
         // Only process items with a cacheable format, the rest will be
-        // handled by text_field_sanitize().
+        // handled by text__field_sanitize().
         $format = $item['format'];
         if (filter_format_allowcache($format)) {
           $lang = isset($object->language) ? $object->language : $language->language;
@@ -194,15 +194,15 @@ function text_field_load($obj_type, $objects, $field, $instances, &$items) {
 }
 
 /**
- * Implement hook_field_sanitize().
+ * Implement hook__field_sanitize().
  *
- * @see text_field_load()
+ * @see text__field_load()
  */
-function text_field_sanitize($obj_type, $object, $field, $instance, &$items) {
+function text__field_sanitize($obj_type, $object, $field, $instance, &$items) {
   global $language;
   foreach ($items as $delta => $item) {
     // Only sanitize items which were not already processed inside
-    // text_field_load(), i.e. items with uncacheable text formats, or coming
+    // text__field_load(), i.e. items with uncacheable text formats, or coming
     // from a form preview.
     if (!isset($items[$delta]['safe'])) {
       if (!empty($instance['settings']['text_processing'])) {
@@ -224,9 +224,9 @@ function text_field_sanitize($obj_type, $object, $field, $instance, &$items) {
 }
 
 /**
- * Implement hook_field_is_empty().
+ * Implement hook__field_is_empty().
  */
-function text_field_is_empty($item, $field) {
+function text__field_is_empty($item, $field) {
   if (empty($item['value']) && (string)$item['value'] !== '0') {
     return TRUE;
   }
@@ -234,9 +234,9 @@ function text_field_is_empty($item, $field) {
 }
 
 /**
- * Implement hook_field_formatter_info().
+ * Implement hook__field_formatter_info().
  */
-function text_field_formatter_info() {
+function text__field_formatter_info() {
   return array(
     'text_default' => array(
       'label' => t('Default'),
@@ -436,7 +436,7 @@ function text_summary($text, $format = NULL, $size = NULL) {
 }
 
 /**
- * Implement hook_field_widget_info().
+ * Implement hook__field_widget_info().
  *
  * Here we indicate that the field module will handle
  * the default value and multiple values for these widgets.
@@ -446,7 +446,7 @@ function text_summary($text, $format = NULL, $size = NULL) {
  * as an example for custom modules that might do things
  * differently.
  */
-function text_field_widget_info() {
+function text__field_widget_info() {
   return array(
     'text_textfield' => array(
       'label' => t('Text field'),
@@ -467,7 +467,7 @@ function text_field_widget_info() {
 }
 
 /**
- * Implement FAPI hook_elements().
+ * Implement FAPI hook__elements().
  *
  * Any FAPI callbacks needed for individual widgets can be declared here,
  * and the element will be passed to those callbacks for processing.
@@ -478,7 +478,7 @@ function text_field_widget_info() {
  * Autocomplete_path is not used by text_field_widget but other
  * widgets can use it (see nodereference and userreference).
  */
-function text_elements() {
+function text__elements() {
   return array(
     'text_textfield' => array(
       '#input' => TRUE,
@@ -505,7 +505,7 @@ function text_elements() {
 }
 
 /**
- * Implement hook_field_widget().
+ * Implement hook__field_widget().
  *
  * Attach a single form element to the form. It will be built out and
  * validated in the callback(s) listed in hook_elements. We build it
@@ -536,7 +536,7 @@ function text_elements() {
  * @return
  *   the form item for a single element for this field
  */
-function text_field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) {
+function text__field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) {
   $element = array(
     '#type' => $instance['widget']['type'],
     '#default_value' => isset($items[$delta]) ? $items[$delta] : '',
@@ -549,9 +549,9 @@ function text_field_widget(&$form, &$form_state, $field, $instance, $items, $del
 }
 
 /**
- * Implement hook_field_widget_error().
+ * Implement hook__field_widget_error().
  */
-function text_field_widget_error($element, $error) {
+function text__field_widget_error($element, $error) {
   switch ($error['error']) {
     case 'text_summary_max_length':
       $error_element = $element[$element['#columns'][1]];
@@ -576,7 +576,7 @@ function text_field_widget_error($element, $error) {
  * TODO: For widgets to be actual FAPI 'elements', reusable outside of a
  * 'field' context, they shoudn't rely on $field and $instance. The bits of
  * information needed to adjust the behavior of the 'element' should be
- * extracted in hook_field_widget() above.
+ * extracted in hook__field_widget() above.
  */
 function text_textfield_elements_process($element, $form_state, $form) {
   $field = $form['#fields'][$element['#field_name']]['field'];
diff --git a/modules/filter/filter.api.php b/modules/filter/filter.api.php
index 162e99a..acbf96d 100644
--- a/modules/filter/filter.api.php
+++ b/modules/filter/filter.api.php
@@ -102,10 +102,10 @@
  *   module can return $text for operations it does not use/need.
  *
  * For a detailed usage example, see filter_example.module. For an example of
- * using multiple filters in one module, see filter_filter() and
- * filter_filter_tips().
+ * using multiple filters in one module, see filter__filter() and
+ * filter__filter_tips().
  */
-function hook_filter($op, $delta = 0, $format = -1, $text = '', $langcode = '', $cache_id = 0) {
+function hook__filter($op, $delta = 0, $format = -1, $text = '', $langcode = '', $cache_id = 0) {
   switch ($op) {
     case 'list':
       return array(0 => t('Code filter'));
@@ -149,7 +149,7 @@ function hook_filter($op, $delta = 0, $format = -1, $text = '', $langcode = '',
  *
  *
  */
-function hook_filter_tips($delta, $format, $long = FALSE) {
+function hook__filter_tips($delta, $format, $long = FALSE) {
   if ($long) {
     return t('To post pieces of code, surround them with &lt;code&gt;...&lt;/code&gt; tags. For PHP code, you can use &lt;?php ... ?&gt;, which will also colour it based on syntax.');
   }
diff --git a/modules/filter/filter.install b/modules/filter/filter.install
index e7f8223..5e54496 100644
--- a/modules/filter/filter.install
+++ b/modules/filter/filter.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function filter_schema() {
+function filter__schema() {
   $schema['filter'] = array(
     'description' => 'Table that maps filters (HTML corrector) to text formats (Filtered HTML).',
     'fields' => array(
diff --git a/modules/filter/filter.module b/modules/filter/filter.module
index 5e760ac..6228b38 100644
--- a/modules/filter/filter.module
+++ b/modules/filter/filter.module
@@ -15,9 +15,9 @@
 define('FILTER_FORMAT_DEFAULT', 0);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function filter_help($path, $arg) {
+function filter__help($path, $arg) {
   switch ($path) {
     case 'admin/help#filter':
       $output = '<p>' . t("The filter module allows administrators to configure text formats for use on your site. A text format defines the HTML tags, codes, and other input allowed in both content and comments, and is a key feature in guarding against potentially damaging input from malicious users. Two formats included by default are <em>Filtered HTML</em> (which allows only an administrator-approved subset of HTML tags) and <em>Full HTML</em> (which allows the full set of HTML tags). Additional formats may be created by an administrator.") . '</p>';
@@ -41,9 +41,9 @@ function filter_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function filter_theme() {
+function filter__theme() {
   return array(
     'filter_admin_overview' => array(
       'arguments' => array('form' => NULL),
@@ -67,9 +67,9 @@ function filter_theme() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function filter_menu() {
+function filter__menu() {
   $items['admin/settings/formats'] = array(
     'title' => 'Text formats',
     'description' => 'Configure how content input by users is filtered, including allowed HTML tags. Also allows enabling of module-provided filters.',
@@ -145,9 +145,9 @@ function filter_admin_format_title($format) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function filter_permission() {
+function filter__permission() {
   return array(
     'administer filters' => array(
       'title' => t('Administer filters'),
@@ -157,18 +157,18 @@ function filter_permission() {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  *
  * Expire outdated filter cache entries
  */
-function filter_cron() {
+function filter__cron() {
   cache_clear_all(NULL, 'cache_filter');
 }
 
 /**
- * Implement hook_filter_tips().
+ * Implement hook__filter_tips().
  */
-function filter_filter_tips($delta, $format, $long = FALSE) {
+function filter__filter_tips($delta, $format, $long = FALSE) {
   global $base_url;
   switch ($delta) {
     case 0:
@@ -396,11 +396,11 @@ function filter_list_format($format) {
  * Modules which need to have content filtered can use these functions to
  * interact with the filter system.
  *
- * For more info, see the hook_filter() documentation.
+ * For more info, see the hook__filter() documentation.
  *
  * Note: because filters can inject JavaScript or execute PHP code, security is
  * vital here. When a user supplies a $format, you should validate it with
- * filter_access($format) before accepting/using it. This is normally done in
+ * filter__access($format) before accepting/using it. This is normally done in
  * the validation stage of the node system. You should for example never make a
  * preview of content in a disallowed format.
  */
@@ -418,7 +418,7 @@ function filter_list_format($format) {
  *   English. This allows filters to be language aware so language specific
  *   text replacement can be implemented.
  * @param $check
- *   Whether to check the $format with filter_access() first. Defaults to TRUE.
+ *   Whether to check the $format with filter__access() first. Defaults to TRUE.
  *   Note that this will check the permissions of the current user, so you
  *   should specify $check = FALSE when viewing other people's content. When
  *   showing content that is not (yet) stored in the database (eg. upon preview),
@@ -430,7 +430,7 @@ function filter_list_format($format) {
  */
 function check_markup($text, $format = FILTER_FORMAT_DEFAULT, $langcode = '', $check = TRUE, $cache = TRUE) {
   // When $check = TRUE, do an access check on $format.
-  if (isset($text) && (!$check || filter_access($format))) {
+  if (isset($text) && (!$check || filter__access($format))) {
     $format = filter_resolve_format($format);
 
     // Check for a cached version of this piece of text.
@@ -528,7 +528,7 @@ function filter_form($value = FILTER_FORMAT_DEFAULT, $weight = NULL, $parents =
 /**
  * Returns TRUE if the user is allowed to access this format.
  */
-function filter_access($format) {
+function filter__access($format) {
   $format = filter_resolve_format($format);
   if (user_access('administer filters') || ($format == variable_get('filter_default_format', 1))) {
     return TRUE;
@@ -642,7 +642,7 @@ function theme_filter_guidelines($format) {
  */
 
 /**
- * Implement hook_filter().
+ * Implement hook__filter().
  *  
  * Set up a basic set of essential filters:
  * - Limit allowed HTML tags:
@@ -657,7 +657,7 @@ function theme_filter_guidelines($format) {
  * - Escape all HTML:
  *     Converts all HTML tags into visible text.
  */
-function filter_filter($op, $delta = 0, $format = -1, $text = '') {
+function filter__filter($op, $delta = 0, $format = -1, $text = '') {
   switch ($op) {
     case 'list':
       return array(0 => t('Limit allowed HTML tags'), 1 => t('Convert line breaks'), 2 => t('Convert URLs into links'), 3 => t('Correct broken HTML'), 4 => t('Escape all HTML'));
diff --git a/modules/filter/filter.test b/modules/filter/filter.test
index c77964a..292ca59 100644
--- a/modules/filter/filter.test
+++ b/modules/filter/filter.test
@@ -425,31 +425,31 @@ class FilterUnitTest extends DrupalWebTestCase {
 
     // HTML filter is not able to secure some tags, these should never be
     // allowed.
-    $f = filter_filter('process', 0, 'no_such_format', '<script />');
+    $f = filter__filter('process', 0, 'no_such_format', '<script />');
     $this->assertNoNormalized($f, 'script', t('HTML filter should always remove script tags.'));
 
-    $f = filter_filter('process', 0, 'no_such_format', '<iframe />');
+    $f = filter__filter('process', 0, 'no_such_format', '<iframe />');
     $this->assertNoNormalized($f, 'iframe', t('HTML filter should always remove iframe tags.'));
 
-    $f = filter_filter('process', 0, 'no_such_format', '<object />');
+    $f = filter__filter('process', 0, 'no_such_format', '<object />');
     $this->assertNoNormalized($f, 'object', t('HTML filter should always remove object tags.'));
 
-    $f = filter_filter('process', 0, 'no_such_format', '<style />');
+    $f = filter__filter('process', 0, 'no_such_format', '<style />');
     $this->assertNoNormalized($f, 'style', t('HTML filter should always remove style tags.'));
 
     // Some tags make CSRF attacks easier, let the user take the risk herself.
-    $f = filter_filter('process', 0, 'no_such_format', '<img />');
+    $f = filter__filter('process', 0, 'no_such_format', '<img />');
     $this->assertNoNormalized($f, 'img', t('HTML filter should remove img tags on default.'));
 
-    $f = filter_filter('process', 0, 'no_such_format', '<input />');
+    $f = filter__filter('process', 0, 'no_such_format', '<input />');
     $this->assertNoNormalized($f, 'img', t('HTML filter should remove input tags on default.'));
 
     // Filtering content of some attributes is infeasible, these shouldn't be
     // allowed too.
-    $f = filter_filter('process', 0, 'no_such_format', '<p style="display: none;" />');
+    $f = filter__filter('process', 0, 'no_such_format', '<p style="display: none;" />');
     $this->assertNoNormalized($f, 'style', t('HTML filter should remove style attribute on default.'));
 
-    $f = filter_filter('process', 0, 'no_such_format', '<p onerror="alert(0);" />');
+    $f = filter__filter('process', 0, 'no_such_format', '<p onerror="alert(0);" />');
     $this->assertNoNormalized($f, 'onerror', t('HTML filter should remove on* attributes on default.'));
   }
 
diff --git a/modules/forum/forum.install b/modules/forum/forum.install
index 7ff50cc..ad6c189 100644
--- a/modules/forum/forum.install
+++ b/modules/forum/forum.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function forum_install() {
+function forum__install() {
   // Create tables.
   drupal_install_schema('forum');
   // Set the weight of the forum.module to 1 so it is loaded after the taxonomy.module.
@@ -22,7 +22,7 @@ function forum_install() {
   variable_set('node_options_forum', array('status'));
 }
 
-function forum_enable() {
+function forum__enable() {
   if ($vocabulary = taxonomy_vocabulary_load(variable_get('forum_nav_vocabulary', 0))) {
     // Existing install. Add back forum node type, if the forums
     // vocabulary still exists. Keep all other node types intact there.
@@ -51,9 +51,9 @@ function forum_enable() {
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function forum_uninstall() {
+function forum__uninstall() {
   // Load the dependent Taxonomy module, in case it has been disabled.
   drupal_load('module', 'taxonomy');
 
@@ -73,9 +73,9 @@ function forum_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function forum_schema() {
+function forum__schema() {
   $schema['forum'] = array(
     'description' => 'Stores the relationship of nodes to forum terms.',
     'fields' => array(
diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index 44790f0..d3fb911 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function forum_help($path, $arg) {
+function forum__help($path, $arg) {
   switch ($path) {
     case 'admin/help#forum':
       $output = '<p>' . t('The forum module lets you create threaded discussion forums with functionality similar to other message board systems. Forums are useful because they allow community members to discuss topics with one another while ensuring those conversations are archived for later reference. The <a href="@create-topic">forum topic</a> menu item (under <em>Add new content</em> on the Navigation menu) creates the initial post of a new threaded discussion, or thread.', array('@create-topic' => url('node/add/forum'))) . '</p>';
@@ -33,9 +33,9 @@ function forum_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function forum_theme() {
+function forum__theme() {
   return array(
     'forums' => array(
       'template' => 'forums',
@@ -84,9 +84,9 @@ function forum_term_load($tid) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function forum_menu() {
+function forum__menu() {
   $items['forum'] = array(
     'title' => 'Forums',
     'page callback' => 'forum_page',
@@ -153,9 +153,9 @@ function forum_menu() {
 
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function forum_init() {
+function forum__init() {
   drupal_add_css(drupal_get_path('module', 'forum') . '/forum.css');
 }
 
@@ -185,9 +185,9 @@ function _forum_node_check_node_type($node, $vocabulary) {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function forum_node_view($node, $build_mode) {
+function forum__node_view($node, $build_mode) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   $vocabulary = taxonomy_vocabulary_load($vid);
   if (_forum_node_check_node_type($node, $vocabulary)) {
@@ -223,9 +223,9 @@ function forum_node_view($node, $build_mode) {
 }
 
 /**
- * Implement hook_node_prepare().
+ * Implement hook__node_prepare().
  */
-function forum_node_prepare($node) {
+function forum__node_prepare($node) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   $vocabulary = taxonomy_vocabulary_load($vid);
   if (_forum_node_check_node_type($node, $vocabulary)) {
@@ -240,11 +240,11 @@ function forum_node_prepare($node) {
 }
 
 /**
- * Implement hook_node_validate().
+ * Implement hook__node_validate().
  *
  * Check in particular that only a "leaf" term in the associated taxonomy.
  */
-function forum_node_validate($node, $form) {
+function forum__node_validate($node, $form) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   $vocabulary = taxonomy_vocabulary_load($vid);
   if (_forum_node_check_node_type($node, $vocabulary)) {
@@ -268,11 +268,11 @@ function forum_node_validate($node, $form) {
 }
 
 /**
- * Implement hook_node_presave().
+ * Implement hook__node_presave().
  *
  * Assign forum taxonomy when adding a topic from within a forum.
  */
-function forum_node_presave($node) {
+function forum__node_presave($node) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   $vocabulary = taxonomy_vocabulary_load($vid);
   if (_forum_node_check_node_type($node, $vocabulary)) {
@@ -299,9 +299,9 @@ function forum_node_presave($node) {
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function forum_node_update($node) {
+function forum__node_update($node) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   $vocabulary = taxonomy_vocabulary_load($vid);
   if (_forum_node_check_node_type($node, $vocabulary)) {
@@ -334,9 +334,9 @@ function forum_node_update($node) {
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function forum_node_insert($node) {
+function forum__node_insert($node) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   $vocabulary = taxonomy_vocabulary_load($vid);
   if (_forum_node_check_node_type($node, $vocabulary)) {
@@ -353,9 +353,9 @@ function forum_node_insert($node) {
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function forum_node_delete($node) {
+function forum__node_delete($node) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   $vocabulary = taxonomy_vocabulary_load($vid);
   if (_forum_node_check_node_type($node, $vocabulary)) {
@@ -366,9 +366,9 @@ function forum_node_delete($node) {
 }
 
 /**
- * Implement hook_node_load().
+ * Implement hook__node_load().
  */
-function forum_node_load($nodes, $types) {
+function forum__node_load($nodes, $types) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   // If no forum vocabulary is set up, return.
   if ($vid == '') {
@@ -391,9 +391,9 @@ function forum_node_load($nodes, $types) {
 }
 
 /**
- * Implement hook_node_info().
+ * Implement hook__node_info().
  */
-function forum_node_info() {
+function forum__node_info() {
   return array(
     'forum' => array(
       'name' => t('Forum topic'),
@@ -405,9 +405,9 @@ function forum_node_info() {
 }
 
 /**
- * Implement hook_access().
+ * Implement hook__access().
  */
-function forum_access($op, $node, $account) {
+function forum__access($op, $node, $account) {
   switch ($op) {
     case 'create':
       return user_access('create forum content', $account);
@@ -419,9 +419,9 @@ function forum_access($op, $node, $account) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function forum_permission() {
+function forum__permission() {
   $perms = array(
     'administer forums' => array(
       'title' => t('Administer forums'),
@@ -442,7 +442,7 @@ function forum_taxonomy($op, $type, $term = NULL) {
         $result = db_query('SELECT tn.nid FROM {taxonomy_term_node} tn WHERE tn.tid = :tid', array(':tid' => $term['tid']));
         foreach ($result as $node) {
           // node_delete will also remove any association with non-forum vocabularies.
-          node_delete($node->nid);
+          node__delete($node->nid);
         }
 
         // For containers, remove the tid from the forum_containers variable.
@@ -460,9 +460,9 @@ function forum_taxonomy($op, $type, $term = NULL) {
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  */
-function forum_form_alter(&$form, $form_state, $form_id) {
+function forum__form_alter(&$form, $form_state, $form_id) {
   $vid = variable_get('forum_nav_vocabulary', 0);
   if (isset($form['vid']) && $form['vid']['#value'] == $vid) {
     // Hide critical options from forum vocabulary.
@@ -493,36 +493,36 @@ function forum_form_alter(&$form, $form_state, $form_id) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function forum_block_list() {
+function forum__block_list() {
   $blocks['active']['info'] = t('Active forum topics');
   $blocks['new']['info'] = t('New forum topics');
   return $blocks;
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function forum_block_configure($delta = '') {
+function forum__block_configure($delta = '') {
   $form['forum_block_num_' . $delta] = array('#type' => 'select', '#title' => t('Number of topics'), '#default_value' => variable_get('forum_block_num_' . $delta, '5'), '#options' => drupal_map_assoc(array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)));
   return $form;
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function forum_block_save($delta = '', $edit = array()) {
+function forum__block_save($delta = '', $edit = array()) {
   variable_set('forum_block_num_' . $delta, $edit['forum_block_num_' . $delta]);
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Generates a block containing the currently active forum topics and the
  * most recently added forum topics.
  */
-function forum_block_view($delta = '') {
+function forum__block_view($delta = '') {
   if (user_access('access content')) {
     $query = db_select('node', 'n');
     $query->join('taxonomy_term_node', 'tn', 'tn.vid = n.vid');
@@ -561,9 +561,9 @@ function forum_block_view($delta = '') {
 }
 
 /**
- * Implement hook_form().
+ * Implement hook__form().
  */
-function forum_form($node, $form_state) {
+function forum__form($node, $form_state) {
   $type = node_type_get_type($node);
   $form['title'] = array('#type' => 'textfield', '#title' => check_plain($type->title_label), '#default_value' => !empty($node->title) ? $node->title : '', '#required' => TRUE, '#weight' => -5);
 
diff --git a/modules/help/help.api.php b/modules/help/help.api.php
index 0b46104..116adc2 100644
--- a/modules/help/help.api.php
+++ b/modules/help/help.api.php
@@ -14,7 +14,7 @@
 /**
  * Provide online user help.
  *
- * By implementing hook_help(), a module can make documentation
+ * By implementing hook__help(), a module can make documentation
  * available to the engine or to other modules. All user help should be
  * returned using this hook; developer help should be provided with
  * Doxygen/api.module comments.
@@ -50,7 +50,7 @@
  *
  * For a detailed usage example, see page_example.module.
  */
-function hook_help($path, $arg) {
+function hook__help($path, $arg) {
   switch ($path) {
     case 'admin/help#block':
       return '<p>' . t('Blocks are boxes of content that may be rendered into certain regions of your web pages, for example, into sidebars. Blocks are usually generated automatically by modules (e.g., Recent Forum Topics), but administrators can also define custom blocks.') . '</p>';
diff --git a/modules/help/help.module b/modules/help/help.module
index 32d14e1..94e245e 100644
--- a/modules/help/help.module
+++ b/modules/help/help.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function help_menu() {
+function help__menu() {
   $items['admin/help'] = array(
     'title' => 'Help',
     'page callback' => 'help_main',
@@ -31,9 +31,9 @@ function help_menu() {
 }
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function help_help($path, $arg) {
+function help__help($path, $arg) {
   switch ($path) {
     case 'admin/help':
       $output = '<p>' . t('Please follow these steps to set up and start using your website:') . '</p>';
diff --git a/modules/help/help.test b/modules/help/help.test
index de2a623..45baf0a 100644
--- a/modules/help/help.test
+++ b/modules/help/help.test
@@ -101,7 +101,7 @@ class NoHelpTestCase extends DrupalWebTestCase {
   }
 
   function setUp() {
-    // Use one of the test modules that do not implement hook_help().
+    // Use one of the test modules that do not implement hook__help().
     parent::setUp('menu_test');
     $this->big_user = $this->drupalCreateUser(array('access administration pages'));
   }
diff --git a/modules/image/image.api.php b/modules/image/image.api.php
index a901e7b..2bf0a18 100644
--- a/modules/image/image.api.php
+++ b/modules/image/image.api.php
@@ -30,7 +30,7 @@
  *   - "summary theme": (optional) The name of a theme function that will output
  *     a summary of this image effect's configuration.
  */
-function hook_image_effect_info() {
+function hook__image_effect_info() {
   $effects = array();
 
   $effects['mymodule_resize'] = array(
@@ -54,7 +54,7 @@ function hook_image_effect_info() {
  * @param $style
  *   The image style array that is being updated.
  */
-function hook_image_style_save($style) {
+function hook__image_style_save($style) {
   // If a module defines an image style and that style is renamed by the user
   // the module should update any references to that style.
   if (isset($style['old_name']) && $style['old_name'] == variable_get('mymodule_image_style', '')) {
@@ -73,7 +73,7 @@ function hook_image_style_save($style) {
  * @param $style
  *   The image style array that being deleted.
  */
-function hook_image_style_delete($style) {
+function hook__image_style_delete($style) {
   // Administrators can choose an optional replacement style when deleting.
   // Update the modules style variable accordingly.
   if (isset($style['old_name']) && $style['old_name'] == variable_get('mymodule_image_style', '')) {
@@ -94,7 +94,7 @@ function hook_image_style_delete($style) {
  * @param $style
  *   The image style array that is being flushed.
  */
-function hook_image_style_flush($style) {
+function hook__image_style_flush($style) {
   // Empty cached data that contains information about the style.
   cache_clear_all('*', 'cache_mymodule', TRUE);
 }
diff --git a/modules/image/image.effects.inc b/modules/image/image.effects.inc
index 2ce0667..45bc2de 100644
--- a/modules/image/image.effects.inc
+++ b/modules/image/image.effects.inc
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_image_effect_info().
+ * Implement hook__image_effect_info().
  */
-function image_image_effect_info() {
+function image__image_effect_info() {
   $effects = array(
     'image_resize' => array(
       'label' => t('Resize'),
diff --git a/modules/image/image.install b/modules/image/image.install
index 66f5c31..361d94e 100644
--- a/modules/image/image.install
+++ b/modules/image/image.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function image_install() {
+function image__install() {
   drupal_install_schema('image');
 
   // Create the styles directory and ensure it's writable.
@@ -18,9 +18,9 @@ function image_install() {
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function image_uninstall() {
+function image__uninstall() {
   drupal_uninstall_schema('image');
 
   // Remove the styles directory and generated images.
@@ -29,9 +29,9 @@ function image_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function image_schema() {
+function image__schema() {
   $schema = array();
 
   $schema['cache_image'] = drupal_get_schema_unprocessed('system', 'cache');
diff --git a/modules/image/image.module b/modules/image/image.module
index 84f72b7..e0c1cc6 100644
--- a/modules/image/image.module
+++ b/modules/image/image.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement of hook_help().
+ * Implement of hook__help().
  */
-function image_help($path, $arg) {
+function image__help($path, $arg) {
   switch ($path) {
     case 'admin/help#image':
       $naming_approaches = array();
@@ -34,9 +34,9 @@ function image_help($path, $arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function image_menu() {
+function image__menu() {
   $items = array();
 
   $items['image/generate/%image_style'] = array(
@@ -124,9 +124,9 @@ function image_menu() {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function image_theme() {
+function image__theme() {
   return array(
     'image_style' => array(
       'arguments' => array(
@@ -166,9 +166,9 @@ function image_theme() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function image_permission() {
+function image__permission() {
   return array(
     'administer image styles' => array(
       'title' => t('Administer image styles'),
@@ -178,18 +178,18 @@ function image_permission() {
 }
 
 /**
- * Implement hook_flush_caches().
+ * Implement hook__flush_caches().
  */
-function image_flush_caches() {
+function image__flush_caches() {
   return array('cache_image');
 }
 
 /**
- * Implement hook_file_download().
+ * Implement hook__file_download().
  *
  * Control the access to files underneath the styles directory.
  */
-function image_file_download($filepath) {
+function image__file_download($filepath) {
   if (strpos($filepath, 'styles/') === 0) {
     $args = explode('/', $filepath);
     // Discard the first part of the path (styles).
@@ -215,17 +215,17 @@ function image_file_download($filepath) {
 }
 
 /**
- * Implement hook_file_move().
+ * Implement hook__file_move().
  */
-function image_file_move($file, $source) {
+function image__file_move($file, $source) {
   // Delete any image derivatives at the original image path.
   image_path_flush($file->filepath);
 }
 
 /**
- * Implement hook_file_delete().
+ * Implement hook__file_delete().
  */
-function image_file_delete($file) {
+function image__file_delete($file) {
   // Delete any image derivatives of this image.
   image_path_flush($file->filepath);
 }
@@ -600,11 +600,11 @@ function image_style_path($style_name, $path) {
 }
 
 /**
- * Pull in image effects exposed by modules implementing hook_image_effect_info().
+ * Pull in image effects exposed by modules implementing hook__image_effect_info().
  *
  * @return
  *   An array of image effects to be used when transforming images.
- * @see hook_image_effect_info()
+ * @see hook__image_effect_info()
  * @see image_effect_definition_load()
  */
 function image_effect_definitions() {
diff --git a/modules/locale/locale.api.php b/modules/locale/locale.api.php
index 07b0e9a..fd071a6 100644
--- a/modules/locale/locale.api.php
+++ b/modules/locale/locale.api.php
@@ -17,7 +17,7 @@
  * @param $op
  *   Type of operation. Currently, only supports 'groups'.
  */
-function hook_locale($op = 'groups') {
+function hook__locale($op = 'groups') {
   switch ($op) {
     case 'groups':
       return array('custom' => t('Custom'));
@@ -35,7 +35,7 @@ function hook_locale($op = 'groups') {
  * @param $path
  *   The current path.
  */
-function hook_translation_link_alter(array &$links, $path) {
+function hook__translation_link_alter(array &$links, $path) {
   global $language;
 
   if (isset($links[$language])) {
diff --git a/modules/locale/locale.install b/modules/locale/locale.install
index da2711e..fe18b01 100644
--- a/modules/locale/locale.install
+++ b/modules/locale/locale.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function locale_install() {
+function locale__install() {
   // locales_source.source and locales_target.target are not used as binary
   // fields; non-MySQL database servers need to ensure the field type is text
   // and that LIKE produces a case-sensitive comparison.
@@ -50,9 +50,9 @@ function locale_update_7000() {
  */
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function locale_uninstall() {
+function locale__uninstall() {
   // Delete all JavaScript translation files.
   $locale_js_directory = file_create_path(variable_get('locale_js_directory', 'languages'));
   $files = db_query('SELECT language, javascript FROM {languages}');
@@ -88,9 +88,9 @@ function locale_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function locale_schema() {
+function locale__schema() {
   $schema['languages'] = array(
     'description' => 'List of all available languages in the system.',
     'fields' => array(
@@ -193,7 +193,7 @@ function locale_schema() {
         'length' => 255,
         'not null' => TRUE,
         'default' => 'default',
-        'description' => 'A module defined group of translations, see hook_locale().',
+        'description' => 'A module defined group of translations, see hook__locale().',
       ),
       'source' => array(
         'type' => 'text',
diff --git a/modules/locale/locale.module b/modules/locale/locale.module
index 11dbc46..19130aa 100644
--- a/modules/locale/locale.module
+++ b/modules/locale/locale.module
@@ -16,9 +16,9 @@
 // Hook implementations
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function locale_help($path, $arg) {
+function locale__help($path, $arg) {
   switch ($path) {
     case 'admin/help#locale':
       $output = '<p>' . t('The locale module allows your Drupal site to be presented in languages other than the default English, a defining feature of multi-lingual websites. The locale module works by examining text as it is about to be displayed: when a translation of the text is available in the language to be displayed, the translation is displayed rather than the original text. When a translation is unavailable, the original text is displayed, and then stored for later review by a translator.') . '</p>';
@@ -66,9 +66,9 @@ function locale_help($path, $arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function locale_menu() {
+function locale__menu() {
   // Manage languages
   $items['admin/config/international'] = array(
    'title' => 'International',
@@ -184,9 +184,9 @@ function locale_inc_callback() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function locale_permission() {
+function locale__permission() {
   return array(
     'administer languages' => array(
       'title' => t('Administer languages'),
@@ -200,9 +200,9 @@ function locale_permission() {
 }
 
 /**
- * Implement hook_locale().
+ * Implement hook__locale().
  */
-function locale_locale($op = 'groups') {
+function locale__locale($op = 'groups') {
   switch ($op) {
     case 'groups':
       return array('default' => t('Built-in interface'));
@@ -210,9 +210,9 @@ function locale_locale($op = 'groups') {
 }
 
 /**
- * Implement hook_user_register().
+ * Implement hook__user_register().
  */
-function locale_user_register(&$edit, $account, $category) {
+function locale__user_register(&$edit, $account, $category) {
   // If we have more then one language and either creating a user on the
   // admin interface or edit the user, show the language selector.
   if (variable_get('language_count', 1) > 1 && user_access('administer users')) {
@@ -221,9 +221,9 @@ function locale_user_register(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_user_form().
+ * Implement hook__user_form().
  */
-function locale_user_form(&$edit, $account, $category) {
+function locale__user_form(&$edit, $account, $category) {
   // If we have more then one language and either creating a user on the
   // admin interface or edit the user, show the language selector.
   if (variable_get('language_count', 1) > 1 && $category == 'account') {
@@ -263,7 +263,7 @@ function locale_language_selector_form($user) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function locale_form_path_admin_form_alter(&$form, &$form_state) {
   $form['language'] = array(
@@ -277,7 +277,7 @@ function locale_form_path_admin_form_alter(&$form, &$form_state) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function locale_form_node_type_form_alter(&$form, &$form_state) {
   if (isset($form['identity']['type'])) {
@@ -292,9 +292,9 @@ function locale_form_node_type_form_alter(&$form, &$form_state) {
 }
 
 /**
- * Implement hook_form_alter(). Adds language fields to forms.
+ * Implement hook__form_alter(). Adds language fields to forms.
  */
-function locale_form_alter(&$form, &$form_state, $form_id) {
+function locale__form_alter(&$form, &$form_state, $form_id) {
   if (isset($form['#id']) && $form['#id'] == 'node-form') {
     if (isset($form['#node']->type) && variable_get('language_content_type_' . $form['#node']->type, 0)) {
       $form['language'] = array(
@@ -316,9 +316,9 @@ function locale_form_alter(&$form, &$form_state, $form_id) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function locale_theme() {
+function locale__theme() {
   return array(
     'locale_languages_overview_form' => array(
       'arguments' => array('form' => array()),
@@ -522,14 +522,14 @@ function locale_system_update($components) {
 }
 
 /**
- * Implement hook_js_alter().
+ * Implement hook__js_alter().
  *
  * This function checks all JavaScript files currently added via drupal_add_js()
  * and invokes parsing if they have not yet been parsed for Drupal.t()
  * and Drupal.formatPlural() calls. Also refreshes the JavaScript translation
  * file if necessary, and adds it to the page.
  */
-function locale_js_alter(&$javascript) {
+function locale__js_alter(&$javascript) {
   global $language;
 
   $dir = file_create_path(variable_get('locale_js_directory', 'languages'));
@@ -584,12 +584,12 @@ function locale_js_alter(&$javascript) {
 }
 
 /*
- * Implement hook_css_alter().
+ * Implement hook__css_alter().
  *
  * This function checks all CSS files currently added via drupal_add_css() and
  * and checks to see if a related right to left CSS file should be included.
  */
-function locale_css_alter(&$css) {
+function locale__css_alter(&$css) {
   global $language;
 
   // If the current language is RTL, add the CSS file with the RTL overrides.
@@ -614,9 +614,9 @@ function locale_css_alter(&$css) {
 // Language switcher block
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function locale_block_list() {
+function locale__block_list() {
   $block['language-switcher']['info'] = t('Language switcher');
   // Not worth caching.
   $block['language-switcher']['cache'] = BLOCK_NO_CACHE;
@@ -624,13 +624,13 @@ function locale_block_list() {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Displays a language switcher. Translation links may be provided by other modules.
  * Only show if we have at least two languages and language dependent
  * web addresses, so we can actually link to other language versions.
  */
-function locale_block_view($delta = '') {
+function locale__block_view($delta = '') {
   if (variable_get('language_count', 1) > 1 && variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE) != LANGUAGE_NEGOTIATION_NONE) {
     $path = drupal_is_front_page() ? '<front>' : $_GET['q'];
     $languages = language_list('enabled');
diff --git a/modules/locale/tests/locale_test.module b/modules/locale/tests/locale_test.module
index 9719cbe..d7f7564 100644
--- a/modules/locale/tests/locale_test.module
+++ b/modules/locale/tests/locale_test.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_locale().
+ * Implement hook__locale().
  */
-function locale_test_locale($op = 'groups') {
+function locale_test__locale($op = 'groups') {
   switch ($op) {
     case 'groups':
       return array('custom' => t('Custom'));
diff --git a/modules/menu/menu.api.php b/modules/menu/menu.api.php
index 8fc9151..10f870a 100644
--- a/modules/menu/menu.api.php
+++ b/modules/menu/menu.api.php
@@ -76,7 +76,7 @@
  * For comprehensive documentation on the menu system, see
  * http://drupal.org/node/102338.
  */
-function hook_menu() {
+function hook__menu() {
   $items = array();
 
   $items['blog'] = array(
@@ -104,9 +104,9 @@ function hook_menu() {
  * altered.
  *
  * @param $items
- *   Associative array of menu router definitions returned from hook_menu().
+ *   Associative array of menu router definitions returned from hook__menu().
  */
-function hook_menu_alter(&$items) {
+function hook__menu_alter(&$items) {
   // Example - disable the page at node/add
   $items['node/add']['access callback'] = FALSE;
 }
@@ -117,12 +117,12 @@ function hook_menu_alter(&$items) {
  * @param $item
  *   Associative array defining a menu link as passed into menu_link_save().
  */
-function hook_menu_link_alter(&$item) {
+function hook__menu_link_alter(&$item) {
   // Example 1 - make all new admin links hidden (a.k.a disabled).
   if (strpos($item['link_path'], 'admin') === 0 && empty($item['mlid'])) {
     $item['hidden'] = 1;
   }
-  // Example 2  - flag a link to be altered by hook_translated_menu_link_alter()
+  // Example 2  - flag a link to be altered by hook__translated_menu_link_alter()
   if ($item['link_path'] == 'devel/cache/clear') {
     $item['options']['alter'] = TRUE;
   }
@@ -134,14 +134,14 @@ function hook_menu_link_alter(&$item) {
  * This hook may be used, for example, to add a page-specific query string.
  * For performance reasons, only links that have $item['options']['alter'] == TRUE
  * will be passed into this hook. The $item['options']['alter'] flag should
- * generally be set using hook_menu_link_alter().
+ * generally be set using hook__menu_link_alter().
  *
  * @param $item
  *   Associative array defining a menu link after _menu_link_translate()
  * @param $map
  *   Associative array containing the menu $map (path parts and/or objects).
  */
-function hook_translated_menu_link_alter(&$item, $map) {
+function hook__translated_menu_link_alter(&$item, $map) {
   if ($item['href'] == 'devel/cache/clear') {
     $item['localized_options']['query'] = drupal_get_destination();
   }
diff --git a/modules/menu/menu.install b/modules/menu/menu.install
index adbecb2..e9207ca 100644
--- a/modules/menu/menu.install
+++ b/modules/menu/menu.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function menu_install() {
+function menu__install() {
   // Create tables.
   drupal_install_schema('menu');
   $system_menus = menu_list_system_menus();
@@ -28,18 +28,18 @@ function menu_install() {
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function menu_uninstall() {
+function menu__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('menu');
   menu_rebuild();
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function menu_schema() {
+function menu__schema() {
   $schema['menu_custom'] = array(
     'description' => 'Holds definitions for top-level custom menus (for example, Main menu).',
     'fields' => array(
diff --git a/modules/menu/menu.module b/modules/menu/menu.module
index f6daaac..d50e5eb 100644
--- a/modules/menu/menu.module
+++ b/modules/menu/menu.module
@@ -13,9 +13,9 @@
 define('MENU_MAX_MENU_NAME_LENGTH_UI', 27);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function menu_help($path, $arg) {
+function menu__help($path, $arg) {
   switch ($path) {
     case 'admin/help#menu':
       $output = '<p>' . t("The menu module provides an interface to control and customize Drupal's powerful menu system. Menus are a hierarchical collection of links used to navigate a website.  Each menu is rendered in a block that may be positioned and displayed using Drupal's flexible block system. Five menus are provided by Drupal and are always present: <em>Navigation</em>, <em>Management</em>, <em>User menu</em>, <em>Main menu</em>, and <em>Secondary menu</em>. The <em>Management</em> menu contains links for administration and content creation, while the <em>Navigation</em> menu is the default location for site navigation links created by newly enabled modules. Both of these are often displayed in either the left or right sidebar. Most Drupal themes also provide support for the <em>Main links</em> and <em>Secondary links</em>, by displaying them in either the header or footer of each page. The <em>Main menu</em> is the default source for the <em>Main links</em> and the <em>User menu</em> is the default source for the <em>Secondary links</em>.  By default, the <em>User menu</em> has links to take the current user to their account or allow them to log out, while the <em>Main menu</em> and <em>Secondary menu</em> contain no menu links but may be configured to contain custom menu items specific to your site. You may create an unlimited number of additional menus, each of which will automatically have an associated block.") . '</p>';
@@ -33,9 +33,9 @@ function menu_help($path, $arg) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function menu_permission() {
+function menu__permission() {
   return array(
     'administer menu' => array(
       'title' => t('Administer menu'),
@@ -45,9 +45,9 @@ function menu_permission() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function menu_menu() {
+function menu__menu() {
   $items['admin/structure/menu'] = array(
     'title' => 'Menus',
     'description' => 'Add new menus to your site, edit existing menus, and rename and reorganize menu links.',
@@ -135,9 +135,9 @@ function menu_menu() {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function menu_theme() {
+function menu__theme() {
   return array(
     'menu_overview_form' => array(
       'file' => 'menu.admin.inc',
@@ -151,11 +151,11 @@ function menu_theme() {
 }
 
 /**
- * Implement hook_enable().
+ * Implement hook__enable().
  *
  * Add a link for each custom menu.
  */
-function menu_enable() {
+function menu__enable() {
   menu_rebuild();
   $base_link = db_query("SELECT mlid AS plid, menu_name from {menu_links} WHERE link_path = 'admin/structure/menu' AND module = 'system'")->fetchAssoc();
   $base_link['router_path'] = 'admin/structure/menu-customize/%';
@@ -189,7 +189,7 @@ function menu_overview_title($menu) {
 /**
  * Load the data for a single custom menu.
  */
-function menu_load($menu_name) {
+function menu__load($menu_name) {
   return db_query("SELECT * FROM {menu_custom} WHERE menu_name = :menu", array(':menu' => $menu_name))->fetchAssoc();
 }
 
@@ -264,9 +264,9 @@ function menu_reset_item($item) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function menu_block_list() {
+function menu__block_list() {
   $menus = menu_get_menus(FALSE);
 
   $blocks = array();
@@ -281,9 +281,9 @@ function menu_block_list() {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  */
-function menu_block_view($delta = '') {
+function menu__block_view($delta = '') {
   $menus = menu_get_menus(FALSE);
   $data['subject'] = check_plain($menus[$delta]);
   $data['content'] = menu_tree($delta);
@@ -291,9 +291,9 @@ function menu_block_view($delta = '') {
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function menu_node_insert($node) {
+function menu__node_insert($node) {
   if (isset($node->menu)) {
     $item = &$node->menu;
     if (!empty($item['delete'])) {
@@ -313,9 +313,9 @@ function menu_node_insert($node) {
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function menu_node_update($node) {
+function menu__node_update($node) {
   if (isset($node->menu)) {
     $item = &$node->menu;
     if (!empty($item['delete'])) {
@@ -335,9 +335,9 @@ function menu_node_update($node) {
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function menu_node_delete($node) {
+function menu__node_delete($node) {
   // Delete all menu module links that point to this node.
   $result = db_query("SELECT mlid FROM {menu_links} WHERE link_path = :path AND module = 'menu'", array(':path' => 'node/' . $node->nid), array('fetch' => PDO::FETCH_ASSOC));
   foreach ($result as $m) {
@@ -346,9 +346,9 @@ function menu_node_delete($node) {
 }
 
 /**
- * Implement hook_node_prepare().
+ * Implement hook__node_prepare().
  */
-function menu_node_prepare($node) {
+function menu__node_prepare($node) {
   if (empty($node->menu)) {
     // Prepare the node for the edit form so that $node->menu always exists.
     $menu_name = variable_get('menu_default_node_menu', 'main-menu');
@@ -388,9 +388,9 @@ function _menu_parent_depth_limit($item) {
 }
 
 /**
- * Implement hook_form_alter(). Adds menu item fields to the node form.
+ * Implement hook__form_alter(). Adds menu item fields to the node form.
  */
-function menu_form_alter(&$form, $form_state, $form_id) {
+function menu__form_alter(&$form, $form_state, $form_id) {
   if (!empty($form['#node_edit_form'])) {
     // Note - doing this to make sure the delete checkbox stays in the form.
     $form['#cache'] = TRUE;
diff --git a/modules/menu/menu.test b/modules/menu/menu.test
index 93639da..d60bbfc 100644
--- a/modules/menu/menu.test
+++ b/modules/menu/menu.test
@@ -130,7 +130,7 @@ class MenuTestCase extends DrupalWebTestCase {
     $this->assertResponse(200);
     $this->assertText(t('The block settings have been updated.'), t('Custom menu block was enabled'));
 
-    return menu_load($menu_name);
+    return menu__load($menu_name);
   }
 
   /**
@@ -146,7 +146,7 @@ class MenuTestCase extends DrupalWebTestCase {
     $this->drupalPost("admin/structure/menu-customize/$menu_name/delete", array(), t('Delete'));
     $this->assertResponse(200);
     $this->assertRaw(t('The custom menu %title has been deleted.', array('%title' => $title)), t('Custom menu was deleted'));
-    $this->assertFalse(menu_load($menu_name), 'Custom menu was deleted');
+    $this->assertFalse(menu__load($menu_name), 'Custom menu was deleted');
   }
 
   /**
diff --git a/modules/node/content_types.inc b/modules/node/content_types.inc
index 6915707..24a75a5 100644
--- a/modules/node/content_types.inc
+++ b/modules/node/content_types.inc
@@ -349,9 +349,9 @@ function node_type_form_submit($form, &$form_state) {
 }
 
 /**
- * Implement hook_node_type_insert().
+ * Implement hook__node_type_insert().
  */
-function node_node_type_insert($info) {
+function node__node_type_insert($info) {
   if (!empty($info->old_type) && $info->old_type != $info->type) {
     $update_count = node_type_update_nodes($info->old_type, $info->type);
 
@@ -362,9 +362,9 @@ function node_node_type_insert($info) {
 }
 
 /**
- * Implement hook_node_type_update().
+ * Implement hook__node_type_update().
  */
-function node_node_type_update($info) {
+function node__node_type_update($info) {
   if (!empty($info->old_type) && $info->old_type != $info->type) {
     $update_count = node_type_update_nodes($info->old_type, $info->type);
 
diff --git a/modules/node/node.admin.inc b/modules/node/node.admin.inc
index 702902e..47c687c 100644
--- a/modules/node/node.admin.inc
+++ b/modules/node/node.admin.inc
@@ -23,9 +23,9 @@ function node_configure_rebuild_confirm_submit($form, &$form_state) {
 }
 
 /**
- * Implement hook_node_operations().
+ * Implement hook__node_operations().
  */
-function node_node_operations() {
+function node__node_operations() {
   $operations = array(
     'publish' => array(
       'label' => t('Publish'),
@@ -594,9 +594,9 @@ function node_multiple_delete_confirm_submit($form, &$form_state) {
 }
 
 /**
- * Implement hook_modules_installed()
+ * Implement hook__modules_installed()
  */
-function node_modules_installed($modules) {
+function node__modules_installed($modules) {
   // Clear node type cache for node permissions.
   node_type_clear();
 }
\ No newline at end of file
diff --git a/modules/node/node.api.php b/modules/node/node.api.php
index 6a12341..087b771 100644
--- a/modules/node/node.api.php
+++ b/modules/node/node.api.php
@@ -39,7 +39,7 @@
  *
  * @ingroup node_access
  */
-function hook_node_grants($account, $op) {
+function hook__node_grants($account, $op) {
   if (user_access('access private content', $account)) {
     $grants['example'] = array(1);
   }
@@ -76,7 +76,7 @@ function hook_node_grants($account, $op) {
  *
  * @ingroup node_access
  */
-function hook_node_access_records($node) {
+function hook__node_access_records($node) {
   if (node_access_example_disabling()) {
     return;
   }
@@ -114,22 +114,22 @@ function hook_node_access_records($node) {
  * Node access modules establish rules for user access to content. Node access
  * records are stored in the {node_access} table and define which permissions
  * are required to access a node. This hook is invoked after node access modules
- * returned their requirements via hook_node_access_records(); doing so allows
+ * returned their requirements via hook__node_access_records(); doing so allows
  * modules to modify the $grants array by reference before it is stored, so
  * custom or advanced business logic can be applied.
  *
- * @see hook_node_access_records()
+ * @see hook__node_access_records()
  *
- * Upon viewing, editing or deleting a node, hook_node_grants() builds a
+ * Upon viewing, editing or deleting a node, hook__node_grants() builds a
  * permissions array that is compared against the stored access records. The
  * user must have one or more matching permissions in order to complete the
  * requested operation.
  *
- * @see hook_node_grants()
- * @see hook_node_grants_alter()
+ * @see hook__node_grants()
+ * @see hook__node_grants_alter()
  *
  * @param &$grants
- *   The $grants array returned by hook_node_access_records().
+ *   The $grants array returned by hook__node_access_records().
  * @param $node
  *   The node for which the grants were acquired.
  *
@@ -140,7 +140,7 @@ function hook_node_access_records($node) {
  *
  * @ingroup node_access
  */
-function hook_node_access_records_alter(&$grants, $node) {
+function hook__node_access_records_alter(&$grants, $node) {
   // Our module allows editors to tag specific articles as 'preview'
   // content using the taxonomy system. If the node being saved
   // contains one of the preview terms defined in our variable
@@ -167,23 +167,23 @@ function hook_node_access_records_alter(&$grants, $node) {
  * Alter user access rules when trying to view, edit or delete a node.
  *
  * Node access modules establish rules for user access to content.
- * hook_node_grants() defines permissions for a user to view, edit or
+ * hook__node_grants() defines permissions for a user to view, edit or
  * delete nodes by building a $grants array that indicates the permissions
  * assigned to the user by each node access module. This hook is called to allow
  * modules to modify the $grants array by reference, so the interaction of
  * multiple node access modules can be altered or advanced business logic can be
  * applied.
  *
- * @see hook_node_grants()
+ * @see hook__node_grants()
  *
  * The resulting grants are then checked against the records stored in the
  * {node_access} table to determine if the operation may be completed.
  *
- * @see hook_node_access_records()
- * @see hook_node_access_records_alter()
+ * @see hook__node_access_records()
+ * @see hook__node_access_records_alter()
  *
  * @param &$grants
- *   The $grants array returned by hook_node_grants().
+ *   The $grants array returned by hook__node_grants().
  * @param $account
  *   The user account requesting access to content.
  * @param $op
@@ -196,7 +196,7 @@ function hook_node_access_records_alter(&$grants, $node) {
  *
  * @ingroup node_access
  */
-function hook_node_grants_alter(&$grants, $account, $op) {
+function hook__node_grants_alter(&$grants, $account, $op) {
   // Our sample module never allows certain roles to edit or delete
   // content. Since some other node access modules might allow this
   // permission, we expressly remove it by returning an empty $grants
@@ -232,7 +232,7 @@ function hook_node_grants_alter(&$grants, $account, $op) {
  *     the callback function.
  *
  */
-function hook_node_operations() {
+function hook__node_operations() {
   $operations = array(
     'approve' => array(
       'label' => t('Approve the selected posts'),
@@ -267,7 +267,7 @@ function hook_node_operations() {
  * @param $node
  *   The node that is being deleted.
  */
-function hook_node_delete($node) {
+function hook__node_delete($node) {
   db_delete('mytable')
     ->condition('nid', $node->nid)
     ->execute();
@@ -281,7 +281,7 @@ function hook_node_delete($node) {
  * @param $node
  *   The node the action is being performed on.
  */
-function hook_node_delete_revision($node) {
+function hook__node_delete_revision($node) {
   db_delete('upload')->condition('vid', $node->vid)->execute();
   if (!is_array($node->files)) {
     return;
@@ -299,7 +299,7 @@ function hook_node_delete_revision($node) {
  * @param $node
  *   The node the action is being performed on.
  */
-function hook_node_insert($node) {
+function hook__node_insert($node) {
   db_insert('mytable')
     ->fields(array(
       'nid' => $node->nid,
@@ -325,16 +325,16 @@ function hook_node_insert($node) {
  * this may affect the way nodes are returned from the cache in subsequent
  * calls to the function.
  *
- * @see comment_node_load()
- * @see taxonomy_node_load()
- * @see forum_node_load()
+ * @see comment__node_load()
+ * @see taxonomy__node_load()
+ * @see forum__node_load()
  *
  * @param $nodes
  *   An array of node objects indexed by nid.
  * @param $types
  *   An array containing the types of the nodes.
  */
-function hook_node_load($nodes, $types) {
+function hook__node_load($nodes, $types) {
   $result = db_query('SELECT nid, foo FROM {mytable} WHERE nid IN(:nids)', array(':nids' => array_keys($nodes)));
   foreach ($result as $record) {
     $nodes[$record->nid]->foo = $record->foo;
@@ -347,7 +347,7 @@ function hook_node_load($nodes, $types) {
  * @param $node
  *   The node the action is being performed on.
  */
-function hook_node_prepare($node) {
+function hook__node_prepare($node) {
   if (!isset($node->comment)) {
     $node->comment = variable_get("comment_$node->type", COMMENT_NODE_OPEN);
   }
@@ -362,7 +362,7 @@ function hook_node_prepare($node) {
  * @param $node
  *   The node the action is being performed on.
  */
-function hook_node_prepare_translation($node) {
+function hook__node_prepare_translation($node) {
 }
 
 /**
@@ -375,7 +375,7 @@ function hook_node_prepare_translation($node) {
  * @return
  *   Extra information to be displayed with search result.
  */
-function hook_node_search_result($node) {
+function hook__node_search_result($node) {
   $comments = db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = :nid', array('nid' => $node->nid))->fetchField();
   return format_plural($comments, '1 comment', '@count comments');
 }
@@ -388,7 +388,7 @@ function hook_node_search_result($node) {
  * @param $node
  *   The node the action is being performed on.
  */
-function hook_node_presave($node) {
+function hook__node_presave($node) {
   if ($node->nid && $node->moderate) {
     // Reset votes when node is updated:
     $node->score = 0;
@@ -403,7 +403,7 @@ function hook_node_presave($node) {
  * @param $node
  *   The node the action is being performed on.
  */
-function hook_node_update($node) {
+function hook__node_update($node) {
   db_update('mytable')
     ->fields(array('extra' => $node->extra))
     ->condition('nid', $node->nid)
@@ -421,7 +421,7 @@ function hook_node_update($node) {
  * @return
  *   Array of additional information to be indexed.
  */
-function hook_node_update_index($node) {
+function hook__node_update_index($node) {
   $text = '';
   $comments = db_query('SELECT subject, comment, format FROM {comment} WHERE nid = :nid AND status = :status', array(':nid' => $node->nid, ':status' => COMMENT_PUBLISHED));
   foreach ($comments as $comment) {
@@ -439,9 +439,9 @@ function hook_node_update_index($node) {
  * @param $node
  *   The node the action is being performed on.
  * @param $form
- *   The $form parameter from node_validate().
+ *   The $form parameter from node__validate().
  */
-function hook_node_validate($node, $form) {
+function hook__node_validate($node, $form) {
   if (isset($node->end) && isset($node->start)) {
     if ($node->start > $node->end) {
       form_set_error('time', t('An event may not end before it starts.'));
@@ -455,7 +455,7 @@ function hook_node_validate($node, $form) {
  * TODO D7 This needs work to clearly explain the different build modes.
  *
  * The module may add elements to $node->content prior to rendering. This hook
- * will be called after hook_view(). The structure of $node->content is a
+ * will be called after hook__view(). The structure of $node->content is a
  * renderable array as expected by drupal_render().
  *
  * When $build_mode is 'rss', modules can also add extra RSS elements and
@@ -463,16 +463,16 @@ function hook_node_validate($node, $form) {
  * the RSS item generated for this node.
  * For details on how this is used @see node_feed()
  *
- * @see taxonomy_node_view()
- * @see upload_node_view()
- * @see comment_node_view()
+ * @see taxonomy__node_view()
+ * @see upload__node_view()
+ * @see comment__node_view()
  *
  * @param $node
  *   The node the action is being performed on.
  * @param $build_mode
  *   The $build_mode parameter from node_build().
  */
-function hook_node_view($node, $build_mode) {
+function hook__node_view($node, $build_mode) {
   $node->content['my_additional_field'] = array(
     '#value' => $additional_field,
     '#weight' => 10,
@@ -497,7 +497,7 @@ function hook_node_view($node, $build_mode) {
  * @param $build_mode
  *   The $build_mode parameter from node_build().
  */
-function hook_node_build_alter($node, $build_mode) {
+function hook__node_build_alter($node, $build_mode) {
   // Check for the existence of a field added by another module.
   if (isset($node->content['an_additional_field'])) {
     // Change its weight.
@@ -554,7 +554,7 @@ function hook_node_build_alter($node, $build_mode) {
  *
  * For a detailed usage example, see node_example.module.
  */
-function hook_node_info() {
+function hook__node_info() {
   return array(
     'book' => array(
       'name' => t('book page'),
@@ -605,7 +605,7 @@ function hook_node_info() {
  *   - "arguments": if any arguments are required for the score, they can be
  *     specified in an array here.
  */
-function hook_ranking() {
+function hook__ranking() {
   // If voting is disabled, we can avoid returning the array, no hard feelings.
   if (variable_get('vote_node_enabled', TRUE)) {
     return array(
@@ -633,7 +633,7 @@ function hook_ranking() {
  * @param $info
  *   The node type object which is being created.
  */
-function hook_node_type_insert($info) {
+function hook__node_type_insert($info) {
 }
 
 /**
@@ -644,7 +644,7 @@ function hook_node_type_insert($info) {
  * @param $info
  *   The node type object which is being modified.
  */
-function hook_node_type_update($info) {
+function hook__node_type_update($info) {
   if (!empty($info->old_type) && $info->old_type != $info->type) {
     $setting = variable_get('comment_' . $info->old_type, COMMENT_NODE_OPEN);
     variable_del('comment_' . $info->old_type);
@@ -660,7 +660,7 @@ function hook_node_type_update($info) {
  * @param $info
  *   The node type object which is being deleted.
  */
-function hook_node_type_delete($info) {
+function hook__node_type_delete($info) {
   variable_del('comment_' . $info->type);
 }
 
@@ -700,7 +700,7 @@ function hook_node_type_delete($info) {
  *
  * @ingroup node_access
  */
-function hook_access($op, $node, $account) {
+function hook__access($op, $node, $account) {
   if ($op == 'create') {
     return user_access('create stories', $account);
   }
@@ -727,7 +727,7 @@ function hook_access($op, $node, $account) {
  *
  * For a detailed usage example, see node_example.module.
  */
-function hook_delete($node) {
+function hook__delete($node) {
   db_delete('mytable')
     ->condition('nid', $nid->nid)
     ->execute();
@@ -742,7 +742,7 @@ function hook_delete($node) {
  *
  * For a usage example, see image.module.
  */
-function hook_prepare($node) {
+function hook__prepare($node) {
   if ($file = file_check_upload($field_name)) {
     $file = file_save_upload($field_name, _image_filename($file->filename, NULL, TRUE));
     if ($file) {
@@ -782,7 +782,7 @@ function hook_prepare($node) {
  *
  * For a detailed usage example, see node_example.module.
  */
-function hook_form($node, $form_state) {
+function hook__form($node, $form_state) {
   $type = node_type_get_type($node);
 
   $form['title'] = array(
@@ -832,7 +832,7 @@ function hook_form($node, $form_state) {
  *
  * For a detailed usage example, see node_example.module.
  */
-function hook_insert($node) {
+function hook__insert($node) {
   db_insert('mytable')
     ->fields(array(
       'nid' => $node->nid,
@@ -856,7 +856,7 @@ function hook_insert($node) {
  *
  * For a detailed usage example, see node_example.module.
  */
-function hook_load($nodes) {
+function hook__load($nodes) {
   $result = db_query('SELECT nid, foo FROM {mytable} WHERE nid IN (:nids)', array(':nids' => array_keys($nodes)));
   foreach ($result as $record) {
     $nodes[$record->nid]->foo = $record->foo;
@@ -878,7 +878,7 @@ function hook_load($nodes) {
  *
  * For a detailed usage example, see node_example.module.
  */
-function hook_update($node) {
+function hook__update($node) {
   db_update('mytable')
     ->fields(array('extra' => $node->extra))
     ->condition('nid', $node->nid)
@@ -900,14 +900,14 @@ function hook_update($node) {
  * To validate nodes of all types (not just nodes of the type(s) defined by
  * this module), use hook_node() instead.
  *
- * Changes made to the $node object within a hook_validate() function will
+ * Changes made to the $node object within a hook__validate() function will
  * have no effect. The preferred method to change a node's content is to use
- * hook_node_presave() instead. If it is really necessary to change
+ * hook__node_presave() instead. If it is really necessary to change
  * the node at the validate stage, you can use function form_set_value().
  *
  * For a detailed usage example, see node_example.module.
  */
-function hook_validate($node, &$form) {
+function hook__validate($node, &$form) {
   if (isset($node->end) && isset($node->start)) {
     if ($node->start > $node->end) {
       form_set_error('time', t('An event may not end before it starts.'));
@@ -933,14 +933,14 @@ function hook_validate($node, &$form) {
  *   $node->content. As with Form API arrays, the #weight property can be 
  *   used to control the relative positions of added elements. After this
  *   hook is invoked, node_build() calls field_attach_view() to add field
- *   views to $node->content, and then invokes hook_node_view() and 
- *   hook_node_build_alter(), so if you want to affect the final
+ *   views to $node->content, and then invokes hook__node_view() and 
+ *   hook__node_build_alter(), so if you want to affect the final
  *   view of the node, you might consider implementing one of these hooks
  *   instead.
  *
  * For a detailed usage example, see node_example.module.
  */
-function hook_view($node, $build_mode = 'full') {
+function hook__view($node, $build_mode = 'full') {
   if ((bool)menu_get_object()) {
     $breadcrumb = array();
     $breadcrumb[] = array('path' => 'example', 'title' => t('example'));
diff --git a/modules/node/node.install b/modules/node/node.install
index 66f9a7d..57ee5d2 100644
--- a/modules/node/node.install
+++ b/modules/node/node.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function node_schema() {
+function node__schema() {
   $schema['node'] = array(
     'description' => 'The base table for nodes.',
     'fields' => array(
@@ -485,7 +485,7 @@ function node_update_7005(&$context) {
           $node->body[0]['format'] = $revision->format;
           // This is a core update and no contrib modules are enabled yet, so
           // we can assume default field storage for a faster update.
-          field_sql_storage_field_storage_write('node', $node, FIELD_STORAGE_INSERT, array());
+          field_sql_storage__field_storage_write('node', $node, FIELD_STORAGE_INSERT, array());
         }
 
         $context['last'] = $revision->vid;
diff --git a/modules/node/node.module b/modules/node/node.module
index 73bc512..a028715 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -16,9 +16,9 @@
 define('NODE_NEW_LIMIT', REQUEST_TIME - 30 * 24 * 60 * 60);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function node_help($path, $arg) {
+function node__help($path, $arg) {
   // Remind site administrators about the {node_access} table being flagged
   // for rebuild. We don't need to issue the message on the confirm form, or
   // while the rebuild is being processed.
@@ -59,9 +59,9 @@ function node_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function node_theme() {
+function node__theme() {
   return array(
     'node' => array(
       'arguments' => array('elements' => NULL),
@@ -110,18 +110,18 @@ function node_theme() {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  */
-function node_cron() {
+function node__cron() {
   db_delete('history')
     ->condition('timestamp', NODE_NEW_LIMIT, '<')
     ->execute();
 }
 
 /**
- * Implement hook_fieldable_info().
+ * Implement hook__fieldable_info().
  */
-function node_fieldable_info() {
+function node__fieldable_info() {
   $return = array(
     'node' => array(
       'label' => t('Node'),
@@ -151,9 +151,9 @@ function node_fieldable_info() {
 
 
 /**
- * Implement hook_field_build_modes().
+ * Implement hook__field_build_modes().
  */
-function node_field_build_modes($obj_type) {
+function node__field_build_modes($obj_type) {
   $modes = array();
   if ($obj_type == 'node') {
     $modes = array(
@@ -541,7 +541,7 @@ function node_type_update_nodes($old_type, $type) {
 /**
  * Builds and returns the list of available node types.
  *
- * The list of types is built by querying hook_node_info() in all modules, and
+ * The list of types is built by querying hook__node_info() in all modules, and
  * by comparing this information with the node types in the {node_type} table.
  *
  */
@@ -590,7 +590,7 @@ function _node_types_build() {
 /**
  * Set the default values for a node type.
  *
- * The defaults are for a type defined through hook_node_info().
+ * The defaults are for a type defined through hook__node_info().
  * When populating a custom node type $info should have the 'custom'
  * key set to 1.
  *
@@ -778,7 +778,7 @@ function node_load_multiple($nids = array(), $conditions = array(), $reset = FAL
   }
 
   // Pass all nodes loaded from the database through the node type specific
-  // callbacks and hook_node_load(), then add them to the internal cache.
+  // callbacks and hook__node_load(), then add them to the internal cache.
   if (!empty($queried_nodes)) {
     // Create an array of nodes for each content type and pass this to the
     // node type specific callback.
@@ -803,7 +803,7 @@ function node_load_multiple($nids = array(), $conditions = array(), $reset = FAL
       field_attach_load('node', $queried_nodes);
     }
 
-    // Call hook_node_load(), pass the node types so modules can return early
+    // Call hook__node_load(), pass the node types so modules can return early
     // if not acting on types in the array.
     foreach (module_implements('node_load') as $module) {
       $function = $module . '__node_load';
@@ -853,7 +853,7 @@ function node_load($nid, $vid = array(), $reset = FALSE) {
 /**
  * Perform validation checks on the given node.
  */
-function node_validate($node, $form = array()) {
+function node__validate($node, $form = array()) {
   // Convert the node to an object, if necessary.
   $node = (object)$node;
   $type = node_type_get_type($node);
@@ -1031,7 +1031,7 @@ function _node_save_revision($node, $uid, $update = NULL) {
  * @param $nid
  *   A node ID.
  */
-function node_delete($nid) {
+function node__delete($nid) {
   node_delete_multiple(array($nid));
 }
 
@@ -1265,9 +1265,9 @@ function theme_node_log_message($log) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function node_permission() {
+function node__permission() {
   $perms = array(
     'administer content types' => array(
       'title' => t('Administer content types'),
@@ -1346,9 +1346,9 @@ function _node_rankings() {
 
 
 /**
- * Implement hook_search().
+ * Implement hook__search().
  */
-function node_search($op = 'search', $keys = NULL) {
+function node__search($op = 'search', $keys = NULL) {
   switch ($op) {
     case 'name':
       return t('Content');
@@ -1479,9 +1479,9 @@ function node_search($op = 'search', $keys = NULL) {
 }
 
 /**
- * Implement hook_ranking().
+ * Implement hook__ranking().
  */
-function node_ranking() {
+function node__ranking() {
   // Create the ranking array and add the basic ranking options.
   $ranking = array(
     'relevance' => array(
@@ -1514,9 +1514,9 @@ function node_ranking() {
 }
 
 /**
- * Implement hook_user_cancel().
+ * Implement hook__user_cancel().
  */
-function node_user_cancel($edit, $account, $method) {
+function node__user_cancel($edit, $account, $method) {
   switch ($method) {
     case 'user_cancel_block_unpublish':
       // Unpublish nodes (current revisions).
@@ -1558,7 +1558,7 @@ function node_user_cancel($edit, $account, $method) {
         ->execute()
         ->fetchCol();
       foreach ($nodes as $nid) {
-        node_delete($nid);
+        node__delete($nid);
       }
       // Delete old revisions.
       db_delete('node_revision')
@@ -1638,9 +1638,9 @@ function _node_add_access() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function node_menu() {
+function node__menu() {
   $items['admin/content'] = array(
     'title' => 'Content',
     'page callback' => 'drupal_get_form',
@@ -1808,9 +1808,9 @@ function node_page_title($node) {
 }
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function node_init() {
+function node__init() {
   drupal_add_css(drupal_get_path('module', 'node') . '/node.css');
 }
 
@@ -1832,9 +1832,9 @@ function node_revision_list($node) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function node_block_list() {
+function node__block_list() {
   $blocks['syndicate']['info'] = t('Syndicate');
   // Not worth caching.
   $blocks['syndicate']['cache'] = BLOCK_NO_CACHE;
@@ -1842,9 +1842,9 @@ function node_block_list() {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  */
-function node_block_view($delta = '') {
+function node__block_view($delta = '') {
   $block['subject'] = t('Syndicate');
   $block['content'] = theme('feed_icon', url('rss.xml'), t('Syndicate'));
 
@@ -2015,9 +2015,9 @@ function node_page_view($node) {
 }
 
 /**
- * Implement hook_update_index().
+ * Implement hook__update_index().
  */
-function node_update_index() {
+function node__update_index() {
   $limit = (int)variable_get('search_cron_limit', 100);
 
   $result = db_query_range("SELECT n.nid FROM {node} n LEFT JOIN {search_dataset} d ON d.type = 'node' AND d.sid = n.nid WHERE d.sid IS NULL OR d.reindex <> 0 ORDER BY d.reindex ASC, n.nid ASC", 0, $limit);
@@ -2057,7 +2057,7 @@ function _node_index_node($node) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function node_form_search_form_alter(&$form, $form_state) {
   if ($form['module']['#value'] == 'node' && user_access('use advanced search')) {
@@ -2141,7 +2141,7 @@ function node_form_search_form_alter(&$form, $form_state) {
 }
 
 /**
- * Form API callback for the search form. Registered in node_form_alter().
+ * Form API callback for the search form. Registered in node__form_alter().
  */
 function node_search_validate($form, &$form_state) {
   // Initialize using any existing basic search keywords.
@@ -2188,7 +2188,7 @@ function node_search_validate($form, &$form_state) {
  *
  * In determining access rights for a node, node_access() first checks
  * whether the user has the "bypass node access" permission. Such users have
- * unrestricted access to all nodes. Then the node module's hook_access()
+ * unrestricted access to all nodes. Then the node module's hook__access()
  * is called, and a TRUE or FALSE return value will grant or deny access.
  * This allows, for example, the blog module to always grant access to the
  * blog author, and for the book module to always deny editing access to
@@ -2196,7 +2196,7 @@ function node_search_validate($form, &$form_state) {
  *
  * If node module does not intervene (returns NULL), then the
  * node_access table is used to determine access. All node access
- * modules are queried using hook_node_grants() to assemble a list of
+ * modules are queried using hook__node_grants() to assemble a list of
  * "grant IDs" for the user. This list is compared against the table.
  * If any row contains the node ID in question (or 0, which stands for "all
  * nodes"), one of the grant IDs returned, and a value of TRUE for the
@@ -2205,7 +2205,7 @@ function node_search_validate($form, &$form_state) {
  * node.
  *
  * In node listings, the process above is followed except that
- * hook_access() is not called on each node for performance reasons and for
+ * hook__access() is not called on each node for performance reasons and for
  * proper functioning of the pager system. When adding a node listing to your
  * module, be sure to use db_rewrite_sql() to add
  * the appropriate clauses to your query for access checks.
@@ -2362,7 +2362,7 @@ function _node_access_where_sql($op = 'view', $node_access_alias = 'na', $accoun
  * Fetch an array of permission IDs granted to the given user ID.
  *
  * The implementation here provides only the universal "all" grant. A node
- * access module should implement hook_node_grants() to provide a grant
+ * access module should implement hook__node_grants() to provide a grant
  * list for the user.
  *
  * After the default grants have been loaded, we allow modules to alter
@@ -2432,9 +2432,9 @@ function node_access_view_all_nodes() {
 }
 
 /**
- * Implement hook_db_rewrite_sql().
+ * Implement hook__db_rewrite_sql().
  */
-function node_db_rewrite_sql($query, $primary_table, $primary_field) {
+function node__db_rewrite_sql($query, $primary_table, $primary_field) {
   if ($primary_field == 'nid' && !node_access_view_all_nodes()) {
     $return['join'] = _node_access_join_sql($primary_table);
     $return['where'] = _node_access_where_sql();
@@ -2444,7 +2444,7 @@ function node_db_rewrite_sql($query, $primary_table, $primary_field) {
 }
 
 /**
- * Implement hook_query_TAG_alter().
+ * Implement hook__query_TAG_alter().
  */
 function node_query_node_access_alter(QueryAlterableInterface $query) {
   // Skip the extra expensive alterations if site has no node access control
@@ -2491,7 +2491,7 @@ function node_query_node_access_alter(QueryAlterableInterface $query) {
  * the grants array by reference. This hook allows for complex business
  * logic to be applied when integrating multiple node access modules.
  *
- * @see hook_node_access_records()
+ * @see hook__node_access_records()
  *
  * This function is the only function that should write to the node_access
  * table.
@@ -2729,11 +2729,11 @@ function _node_access_rebuild_batch_finished($success, $results, $operations) {
  */
 
 /**
- * Implement hook_access().
+ * Implement hook__access().
  *
  * Named so as not to conflict with node_access()
  */
-function node_content_access($op, $node, $account) {
+function node_content__access($op, $node, $account) {
   $type = is_string($node) ? $node : (is_array($node) ? $node['type'] : $node->type);
 
   if ($op == 'create') {
@@ -2754,9 +2754,9 @@ function node_content_access($op, $node, $account) {
 }
 
 /**
- * Implement hook_form().
+ * Implement hook__form().
  */
-function node_content_form($node, $form_state) {
+function node_content__form($node, $form_state) {
 
   $type = node_type_get_type($node);
 
@@ -2781,10 +2781,10 @@ function node_content_form($node, $form_state) {
  */
 
 /**
- * Implement hook_forms().
+ * Implement hook__forms().
  * All node forms share the same form handler.
  */
-function node_forms() {
+function node__forms() {
   $forms = array();
   if ($types = node_type_get_types()) {
     foreach (array_keys($types) as $type) {
@@ -2808,9 +2808,9 @@ function theme_node_submitted($node) {
 }
 
 /**
- * Implement hook_hook_info().
+ * Implement hook__hook_info().
  */
-function node_hook_info() {
+function node__hook_info() {
   return array(
     'node' => array(
       'node' => array(
@@ -2835,9 +2835,9 @@ function node_hook_info() {
 }
 
 /**
- * Implement hook_action_info().
+ * Implement hook__action_info().
  */
-function node_action_info() {
+function node__action_info() {
   return array(
     'node_publish_action' => array(
       'type' => 'node',
@@ -3126,15 +3126,15 @@ function node_list_permissions($type) {
 }
 
 /**
- * Implement hook_requirements().
+ * Implement hook__requirements().
  */
-function node_requirements($phase) {
+function node__requirements($phase) {
   $requirements = array();
   // Ensure translations don't break at install time
   $t = get_t();
   // Only show rebuild button if there are either 0, or 2 or more, rows
   // in the {node_access} table, or if there are modules that
-  // implement hook_node_grants().
+  // implement hook__node_grants().
   $grant_count = db_query('SELECT COUNT(*) FROM {node_access}')->fetchField();
   if ($grant_count != 1 || count(module_implements('node_grants')) > 0) {
     $value = format_plural($grant_count, 'One permission in use', '@count permissions in use', array('@count' => $grant_count));
diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc
index caf01b5..917bce3 100644
--- a/modules/node/node.pages.inc
+++ b/modules/node/node.pages.inc
@@ -72,10 +72,10 @@ function node_add($type) {
 
 function node_form_validate($form, &$form_state) {
   $node = $form_state['values'];
-  node_validate($node, $form);
+  node__validate($node, $form);
 
   // Field validation. Requires access to $form_state, so this cannot be
-  // done in node_validate() as it currently exists.
+  // done in node__validate() as it currently exists.
   $node = (object)$node;
   field_attach_form_validate('node', $node, $form, $form_state);
 }
@@ -107,7 +107,7 @@ function node_object_prepare($node) {
 /**
  * Generate the node add/edit form array.
  */
-function node_form(&$form_state, $node) {
+function node__form(&$form_state, $node) {
   global $user;
 
   if (isset($form_state['node'])) {
@@ -466,7 +466,7 @@ function node_delete_confirm(&$form_state, $node) {
 function node_delete_confirm_submit($form, &$form_state) {
   if ($form_state['values']['confirm']) {
     $node = node_load($form_state['values']['nid']);
-    node_delete($form_state['values']['nid']);
+    node__delete($form_state['values']['nid']);
     watchdog('content', '@type: deleted %title.', array('@type' => $node->type, '%title' => $node->title));
     drupal_set_message(t('@type %title has been deleted.', array('@type' => node_type_get_name($node), '%title' => $node->title)));
   }
diff --git a/modules/node/node.test b/modules/node/node.test
index ecfdec8..4de70b1 100644
--- a/modules/node/node.test
+++ b/modules/node/node.test
@@ -666,9 +666,9 @@ class NodeAccessRecordsUnitTest extends DrupalWebTestCase {
   }
 
   function setUp() {
-    // Enable dummy module that implements hook_node_grants(),
-    // hook_node_access_records(), hook_node_grants_alter() and
-    // hook_node_access_records_alter().
+    // Enable dummy module that implements hook__node_grants(),
+    // hook__node_access_records(), hook__node_grants_alter() and
+    // hook__node_access_records_alter().
     parent::setUp('node_test');
   }
 
@@ -717,12 +717,12 @@ class NodeAccessRecordsUnitTest extends DrupalWebTestCase {
     $this->assertEqual($records[0]->realm, 'test_alter_realm', t('Altered grant with alter_realm acquired for node.'));
     $this->assertEqual($records[0]->gid, 2, t('Altered grant with gid = 2 acquired for node.'));
 
-    // Check to see if we can alter grants with hook_node_grants_alter().
+    // Check to see if we can alter grants with hook__node_grants_alter().
     $operations = array('view', 'update', 'delete');
     // Create a user that is allowed to access content.
     $web_user = $this->drupalCreateUser(array('access content'));
     foreach ($operations as $op) {
-      $grants = node_test_node_grants($op, $web_user);
+      $grants = node_test__node_grants($op, $web_user);
       $altered_grants = drupal_alter($grants, $web_user, $op);
       $this->assertNotEqual($grants, $altered_grants, t('Altered the %op grant for a user.', array('%op' => $op)));
     }
diff --git a/modules/node/tests/node_test.module b/modules/node/tests/node_test.module
index d4b3218..31bb154 100644
--- a/modules/node/tests/node_test.module
+++ b/modules/node/tests/node_test.module
@@ -8,9 +8,9 @@
  */
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function node_test_node_view($node, $build_mode) {
+function node_test__node_view($node, $build_mode) {
   if ($build_mode == 'rss') {
     // Add RSS elements and namespaces when building the RSS feed.
     $node->rss_elements[] = array(
@@ -35,9 +35,9 @@ function node_test_node_view($node, $build_mode) {
 }
 
 /**
- * Implement hook_node_grants().
+ * Implement hook__node_grants().
  */
-function node_test_node_grants($account, $op) {
+function node_test__node_grants($account, $op) {
   // Give everyone full grants so we don't break other node tests.
   // Our node access tests asserts three realms of access.
   // @see testGrantAlter()
@@ -49,9 +49,9 @@ function node_test_node_grants($account, $op) {
 }
 
 /**
- * Implement hook_node_access_records().
+ * Implement hook__node_access_records().
  */
-function node_test_node_access_records($node) {
+function node_test__node_access_records($node) {
   $grants = array();
   if ($node->type == 'article') {
     // Create grant in arbitrary article_realm for article nodes.
@@ -79,9 +79,9 @@ function node_test_node_access_records($node) {
 }
 
 /**
- * Implement hook_node_access_records_alter().
+ * Implement hook__node_access_records_alter().
  */
-function node_test_node_access_records_alter(&$grants, $node) {
+function node_test__node_access_records_alter(&$grants, $node) {
   if (!empty($grants)) {
     foreach ($grants as $key => $grant) {
       // Alter grant from test_page_realm to test_alter_realm and modify the gid.
@@ -94,9 +94,9 @@ function node_test_node_access_records_alter(&$grants, $node) {
 }
 
 /**
- * Implement hook_node_grants_alter().
+ * Implement hook__node_grants_alter().
  */
-function node_test_node_grants_alter(&$grants, $account, $op) {
+function node_test__node_grants_alter(&$grants, $account, $op) {
   // Return an empty array of grants to prove that we can alter by reference.
   $grants = array();
 }
diff --git a/modules/openid/openid.api.php b/modules/openid/openid.api.php
index 3ce7caa..88066bd 100644
--- a/modules/openid/openid.api.php
+++ b/modules/openid/openid.api.php
@@ -24,7 +24,7 @@
  *   An associative array of parameters to be merged with the default list.
  *
  */
-function hook_openid($op, $request) {
+function hook__openid($op, $request) {
   if ($op == 'request') {
     $request['openid.identity'] = 'http://myname.myopenid.com/';
   }
diff --git a/modules/openid/openid.install b/modules/openid/openid.install
index 0476d98..1944443 100644
--- a/modules/openid/openid.install
+++ b/modules/openid/openid.install
@@ -7,25 +7,25 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function openid_install() {
+function openid__install() {
   // Create table.
   drupal_install_schema('openid');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function openid_uninstall() {
+function openid__uninstall() {
   // Remove table.
   drupal_uninstall_schema('openid');
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function openid_schema() {
+function openid__schema() {
   $schema['openid_association'] = array(
     'description' => 'Stores temporary shared key association information for OpenID authentication.',
     'fields' => array(
diff --git a/modules/openid/openid.module b/modules/openid/openid.module
index 7f10612..fcf4b6e 100644
--- a/modules/openid/openid.module
+++ b/modules/openid/openid.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function openid_menu() {
+function openid__menu() {
   $items['openid/authenticate'] = array(
     'title' => 'OpenID Login',
     'page callback' => 'openid_authentication_page',
@@ -36,9 +36,9 @@ function openid_menu() {
 }
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function openid_help($path, $arg) {
+function openid__help($path, $arg) {
   switch ($path) {
     case 'user/%/openid':
       $output = '<p>' . t('This site supports <a href="@openid-net">OpenID</a>, a secure way to log into many websites using a single username and password. OpenID can reduce the necessity of managing many usernames and passwords for many websites.', array('@openid-net' => 'http://openid.net')) . '</p>';
@@ -57,9 +57,9 @@ function openid_help($path, $arg) {
 }
 
 /**
- * Implement hook_user_insert().
+ * Implement hook__user_insert().
  */
-function openid_user_insert(&$edit, $account, $category) {
+function openid__user_insert(&$edit, $account, $category) {
   if (isset($_SESSION['openid']['values'])) {
     // The user has registered after trying to login via OpenID.
     if (variable_get('user_email_verification', TRUE)) {
@@ -70,14 +70,14 @@ function openid_user_insert(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function openid_form_user_login_block_alter(&$form, &$form_state) {
   _openid_user_login_form_alter($form, $form_state);
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function openid_form_user_login_alter(&$form, &$form_state) {
   _openid_user_login_form_alter($form, $form_state);
@@ -122,7 +122,7 @@ function _openid_user_login_form_alter(&$form, &$form_state) {
 }
 
 /**
- * Implement hook_form_alter(). Adds OpenID login to the login forms.
+ * Implement hook__form_alter(). Adds OpenID login to the login forms.
  */
 function openid_form_user_register_alter(&$form, &$form_state) {
   if (isset($_SESSION['openid']['values'])) {
diff --git a/modules/openid/tests/openid_test.install b/modules/openid/tests/openid_test.install
index 79d135b..69a7d15 100644
--- a/modules/openid/tests/openid_test.install
+++ b/modules/openid/tests/openid_test.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function openid_test_install() {
+function openid_test__install() {
   module_load_include('inc', 'openid');
   // Generate a MAC key (Message Authentication Code) used for signing messages.
   // The variable is base64-encoded, because variables cannot contain non-UTF-8
diff --git a/modules/openid/tests/openid_test.module b/modules/openid/tests/openid_test.module
index b101b50..8c4d6a9 100644
--- a/modules/openid/tests/openid_test.module
+++ b/modules/openid/tests/openid_test.module
@@ -22,9 +22,9 @@
  */
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function openid_test_menu() {
+function openid_test__menu() {
   $items['openid-test/yadis/xrds'] = array(
     'title' => 'XRDS service document',
     'page callback' => 'openid_test_yadis_xrds',
diff --git a/modules/path/path.module b/modules/path/path.module
index b537111..9543ce0 100644
--- a/modules/path/path.module
+++ b/modules/path/path.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function path_help($path, $arg) {
+function path__help($path, $arg) {
   switch ($path) {
     case 'admin/help#path':
       $output = '<p>' . t('The path module allows you to specify aliases for Drupal URLs. Such aliases improve readability of URLs for your users and may help internet search engines to index your content more effectively. More than one alias may be created for a given page.') . '</p>';
@@ -30,9 +30,9 @@ function path_help($path, $arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function path_menu() {
+function path__menu() {
   $items['admin/settings/path'] = array(
     'title' => 'URL aliases',
     'description' => "Change your site's URL paths by aliasing them.",
@@ -145,9 +145,9 @@ function path_set_alias($path = NULL, $alias = NULL, $pid = NULL, $language = ''
 }
 
 /**
- * Implement hook_node_validate().
+ * Implement hook__node_validate().
  */
-function path_node_validate($node, $form) {
+function path__node_validate($node, $form) {
   if (user_access('create url aliases') || user_access('administer url aliases')) {
     if (isset($node->path)) {
       $language = isset($node->language) ? $node->language : '';
@@ -167,9 +167,9 @@ function path_node_validate($node, $form) {
 }
 
 /**
- * Implement hook_node_load().
+ * Implement hook__node_load().
  */
-function path_node_load($nodes, $types) {
+function path__node_load($nodes, $types) {
   foreach ($nodes as $node) {
     $language = isset($node->language) ? $node->language : '';
     $path = 'node/' . $node->nid;
@@ -181,9 +181,9 @@ function path_node_load($nodes, $types) {
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function path_node_insert($node) {
+function path__node_insert($node) {
   if (user_access('create url aliases') || user_access('administer url aliases')) {
     $language = isset($node->language) ? $node->language : '';
     // Don't try to insert if path is NULL. We may have already set
@@ -195,9 +195,9 @@ function path_node_insert($node) {
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function path_node_update($node) {
+function path__node_update($node) {
   if (user_access('create url aliases') || user_access('administer url aliases')) {
     $language = isset($node->language) ? $node->language : '';
     path_set_alias('node/' . $node->nid, isset($node->path) ? $node->path : NULL, isset($node->pid) ? $node->pid : NULL, $language);
@@ -205,16 +205,16 @@ function path_node_update($node) {
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function path_node_delete($node) {
+function path__node_delete($node) {
   path_set_alias('node/' . $node->nid);
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  */
-function path_form_alter(&$form, $form_state, $form_id) {
+function path__form_alter(&$form, $form_state, $form_id) {
   if (!empty($form['#node_edit_form'])) {
     $path = isset($form['#node']->path) ? $form['#node']->path : NULL;
     $form['path'] = array(
@@ -250,9 +250,9 @@ function path_form_alter(&$form, $form_state, $form_id) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function path_permission() {
+function path__permission() {
   return array(
     'administer url aliases' => array(
       'title' => t('Administer URL aliases'),
diff --git a/modules/php/php.install b/modules/php/php.install
index 8af4b0f..a01258f 100644
--- a/modules/php/php.install
+++ b/modules/php/php.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function php_install() {
+function php__install() {
   $format_exists = (bool) db_query_range('SELECT 1 FROM {filter_format} WHERE name = :name', array(':name' => 'PHP code'), 0, 1)->fetchField();
   // Add a PHP code text format, if it does not exist. Do this only for the
   // first install (or if the format has been manually deleted) as there is no
@@ -39,8 +39,8 @@ function php_install() {
 }
 
 /**
- * Implement hook_disable().
+ * Implement hook__disable().
  */
-function php_disable() {
+function php__disable() {
   drupal_set_message(t('The PHP module has been disabled. Please note that any existing content that was using the PHP filter will now be visible in plain text. This might pose a security risk by exposing sensitive information, if any, used in the PHP code.'));
 }
diff --git a/modules/php/php.module b/modules/php/php.module
index a853cdd..aef0aa8 100644
--- a/modules/php/php.module
+++ b/modules/php/php.module
@@ -8,9 +8,9 @@
 
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function php_help($path, $arg) {
+function php__help($path, $arg) {
   switch ($path) {
     case 'admin/help#php':
       $output = '<p>' . t('The PHP filter adds the ability to include PHP code in posts. PHP is a general-purpose scripting language widely-used for web development; the content management system used by this website has been developed using PHP.') . '</p>';
@@ -22,9 +22,9 @@ function php_help($path, $arg) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function php_permission() {
+function php__permission() {
   return array(
     'use PHP for settings' => array(
       'title' => t('Use PHP for settings'),
@@ -78,9 +78,9 @@ function php_eval($code) {
 }
 
 /**
- * Implement hook_filter_tips().
+ * Implement hook__filter_tips().
  */
-function php_filter_tips($delta, $format, $long = FALSE) {
+function php__filter_tips($delta, $format, $long = FALSE) {
   global $base_url;
   if ($delta == 0) {
     switch ($long) {
@@ -121,11 +121,11 @@ else {
 }
 
 /**
- * Implement hook_filter(). Contains a basic PHP evaluator.
+ * Implement hook__filter(). Contains a basic PHP evaluator.
  *
  * Executes PHP code. Use with care.
  */
-function php_filter($op, $delta = 0, $format = -1, $text = '') {
+function php__filter($op, $delta = 0, $format = -1, $text = '') {
   switch ($op) {
     case 'list':
       return array(0 => t('PHP evaluator'));
diff --git a/modules/poll/poll.install b/modules/poll/poll.install
index 4a45cae..e5b1719 100644
--- a/modules/poll/poll.install
+++ b/modules/poll/poll.install
@@ -7,25 +7,25 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function poll_install() {
+function poll__install() {
   // Create tables.
   drupal_install_schema('poll');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function poll_uninstall() {
+function poll__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('poll');
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function poll_schema() {
+function poll__schema() {
   $schema['poll'] = array(
     'description' => 'Stores poll-specific information for poll nodes.',
     'fields' => array(
diff --git a/modules/poll/poll.module b/modules/poll/poll.module
index b05dc70..ecd2ce3 100644
--- a/modules/poll/poll.module
+++ b/modules/poll/poll.module
@@ -8,9 +8,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function poll_help($path, $arg) {
+function poll__help($path, $arg) {
   switch ($path) {
     case 'admin/help#poll':
       $output = '<p>' . t('The poll module can be used to create simple polls for site users. A poll is a simple, multiple choice questionnaire which displays the cumulative results of the answers to the poll. Having polls on the site is a good way to receive feedback from community members.') . '</p>';
@@ -21,16 +21,16 @@ function poll_help($path, $arg) {
 }
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function poll_init() {
+function poll__init() {
   drupal_add_css(drupal_get_path('module', 'poll') . '/poll.css');
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function poll_theme() {
+function poll__theme() {
   return array(
     'poll_vote' => array(
       'template' => 'poll-vote',
@@ -51,9 +51,9 @@ function poll_theme() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function poll_permission() {
+function poll__permission() {
   $perms = node_list_permissions('poll');
   $perms += array(
     'vote on polls' => array(
@@ -74,9 +74,9 @@ function poll_permission() {
 }
 
 /**
- * Implement hook_access().
+ * Implement hook__access().
  */
-function poll_access($op, $node, $account) {
+function poll__access($op, $node, $account) {
   switch ($op) {
     case 'create':
       return user_access('create poll content', $account);
@@ -88,9 +88,9 @@ function poll_access($op, $node, $account) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function poll_menu() {
+function poll__menu() {
   $items['poll'] = array(
     'title' => 'Polls',
     'page callback' => 'poll_page',
@@ -129,9 +129,9 @@ function _poll_menu_access($node, $perm, $inspect_allowvotes) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function poll_block_list() {
+function poll__block_list() {
   if (user_access('access content')) {
     $blocks['recent']['info'] = t('Most recent poll');
     return $blocks;
@@ -139,11 +139,11 @@ function poll_block_list() {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Generates a block containing the latest poll.
  */
-function poll_block_view($delta = '') {
+function poll__block_view($delta = '') {
   if (user_access('access content')) {
     // Retrieve the latest poll.
     $select = db_select('node', 'n');
@@ -169,11 +169,11 @@ function poll_block_view($delta = '') {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  *
  * Closes polls that have exceeded their allowed runtime.
  */
-function poll_cron() {
+function poll__cron() {
   $nids = db_query('SELECT p.nid FROM {poll} p INNER JOIN {node} n ON p.nid = n.nid WHERE (n.created + p.runtime) < :request_time AND p.active = :active AND p.runtime <> :runtime', array(':request_time' => REQUEST_TIME, ':active' => 1, ':runtime' => 0))->fetchCol();
   if (!empty($nids)) {
     db_update('poll')
@@ -184,9 +184,9 @@ function poll_cron() {
 }
 
 /**
- * Implement hook_node_info().
+ * Implement hook__node_info().
  */
-function poll_node_info() {
+function poll__node_info() {
   return array(
     'poll' => array(
       'name' => t('Poll'),
@@ -199,9 +199,9 @@ function poll_node_info() {
 }
 
 /**
- * Implement hook_form().
+ * Implement hook__form().
  */
-function poll_form($node, $form_state) {
+function poll__form($node, $form_state) {
   global $user;
 
   $admin = user_access('administer nodes') || user_access('edit any poll content') || (user_access('edit own poll content') && $user->uid == $node->uid);
@@ -388,9 +388,9 @@ function poll_node_form_submit(&$form, &$form_state) {
 }
 
 /**
- * Implement hook_validate().
+ * Implement hook__validate().
  */
-function poll_validate($node, $form) {
+function poll__validate($node, $form) {
   if (isset($node->title)) {
     // Check for at least two options and validate amount of votes:
     $realchoices = 0;
@@ -412,18 +412,18 @@ function poll_validate($node, $form) {
 }
 
 /**
- * Implement hook_node_prepare_translation().
+ * Implement hook__node_prepare_translation().
  */
-function poll_node_prepare_translation($node) {
+function poll__node_prepare_translation($node) {
   if ($node->type == 'poll') {
     $node->choice = $node->translation_source->choice;
   }
 }
 
 /**
- * Implement hook_load().
+ * Implement hook__load().
  */
-function poll_load($nodes) {
+function poll__load($nodes) {
   global $user;
   foreach ($nodes as $node) {
     $poll = db_query("SELECT runtime, active FROM {poll} WHERE nid = :nid", array(':nid' => $node->nid))->fetchObject();
@@ -455,9 +455,9 @@ function poll_load($nodes) {
 }
 
 /**
- * Implement hook_insert().
+ * Implement hook__insert().
  */
-function poll_insert($node) {
+function poll__insert($node) {
   if (!user_access('administer nodes')) {
     // Make sure all votes are 0 initially
     foreach ($node->choice as $i => $choice) {
@@ -489,9 +489,9 @@ function poll_insert($node) {
 }
 
 /**
- * Implement hook_update().
+ * Implement hook__update().
  */
-function poll_update($node) {
+function poll__update($node) {
   // Update poll settings.
   db_update('poll')
     ->fields(array(
@@ -526,9 +526,9 @@ function poll_update($node) {
 }
 
 /**
- * Implement hook_delete().
+ * Implement hook__delete().
  */
-function poll_delete($node) {
+function poll__delete($node) {
   db_delete('poll')
     ->condition('nid', $node->nid)
     ->execute();
@@ -582,9 +582,9 @@ function poll_block_latest_poll_view($node) {
 
 
 /**
- * Implement hook_view().
+ * Implement hook__view().
  */
-function poll_view($node, $build_mode = 'full') {
+function poll__view($node, $build_mode = 'full') {
   global $user;
   $output = '';
 
@@ -865,9 +865,9 @@ function poll_cancel($form, &$form_state) {
 }
 
 /**
- * Implement hook_user_cancel().
+ * Implement hook__user_cancel().
  */
-function poll_user_cancel($edit, $account, $method) {
+function poll__user_cancel($edit, $account, $method) {
   switch ($method) {
     case 'user_cancel_reassign':
       db_update('poll_vote')
diff --git a/modules/profile/profile.admin.inc b/modules/profile/profile.admin.inc
index 72ed5a0..e50dd8d 100644
--- a/modules/profile/profile.admin.inc
+++ b/modules/profile/profile.admin.inc
@@ -380,7 +380,7 @@ function profile_field_form_submit($form, &$form_state) {
 /**
  * Menu callback; deletes a field from all user profiles.
  */
-function profile_field_delete(&$form_state, $fid) {
+function profile__field_delete(&$form_state, $fid) {
   $field = db_query("SELECT title FROM {profile_field} WHERE fid = :fid", array(':fid' => $fid))->fetchObject();
   if (!$field) {
     drupal_not_found();
diff --git a/modules/profile/profile.install b/modules/profile/profile.install
index 3255046..53e15f1 100644
--- a/modules/profile/profile.install
+++ b/modules/profile/profile.install
@@ -7,17 +7,17 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function profile_install() {
+function profile__install() {
   // Create tables.
   drupal_install_schema('profile');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function profile_uninstall() {
+function profile__uninstall() {
   // Remove tables
   drupal_uninstall_schema('profile');
 
@@ -25,9 +25,9 @@ function profile_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function profile_schema() {
+function profile__schema() {
   $schema['profile_field'] = array(
     'description' => 'Stores profile field information.',
     'fields' => array(
diff --git a/modules/profile/profile.module b/modules/profile/profile.module
index 37511ca..eb72e96 100644
--- a/modules/profile/profile.module
+++ b/modules/profile/profile.module
@@ -27,9 +27,9 @@ define('PROFILE_PUBLIC_LISTINGS', 3);
 define('PROFILE_HIDDEN', 4);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function profile_help($path, $arg) {
+function profile__help($path, $arg) {
   switch ($path) {
     case 'admin/help#profile':
       $output = '<p>' . t('The profile module allows custom fields (such as country, full name, or age) to be defined and displayed in the <em>My Account</em> section. This permits users of a site to share more information about themselves, and can help community-based sites organize users around specific information.') . '</p>';
@@ -49,9 +49,9 @@ function profile_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function profile_theme() {
+function profile__theme() {
   return array(
     'profile_block' => array(
       'arguments' => array('account' => NULL, 'fields' => array()),
@@ -73,9 +73,9 @@ function profile_theme() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function profile_menu() {
+function profile__menu() {
   $items['profile'] = array(
     'title' => 'User list',
     'page callback' => 'profile_browse',
@@ -126,18 +126,18 @@ function profile_menu() {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function profile_block_list() {
+function profile__block_list() {
   $blocks['author-information']['info'] = t('Author information');
   $blocks['author-information']['cache'] = BLOCK_CACHE_PER_PAGE | BLOCK_CACHE_PER_ROLE;
   return $blocks;
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function profile_block_configure($delta = '') {
+function profile__block_configure($delta = '') {
   // Compile a list of fields to show
   $fields = array();
   $result = db_query('SELECT name, title, weight, visibility FROM {profile_field} WHERE visibility IN (:visibility) ORDER BY weight', array(':visibility' => array(PROFILE_PUBLIC, PROFILE_PUBLIC_LISTINGS)));
@@ -156,16 +156,16 @@ function profile_block_configure($delta = '') {
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function profile_block_save($delta = '', $edit = array()) {
+function profile__block_save($delta = '', $edit = array()) {
   variable_set('profile_block_author_fields', $edit['profile_block_author_fields']);
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  */
-function profile_block_view($delta = '') {
+function profile__block_view($delta = '') {
   if (user_access('access user profiles')) {
     $output = '';
     if ((arg(0) == 'node') && is_numeric(arg(1)) && (arg(2) == NULL)) {
@@ -203,37 +203,37 @@ function profile_block_view($delta = '') {
 }
 
 /**
- * Implement hook_user_register().
+ * Implement hook__user_register().
  */
-function profile_user_register(&$edit, $account, $category) {
+function profile__user_register(&$edit, $account, $category) {
   return profile_form_profile($edit, $account, $category, TRUE);
 }
 
 /**
- * Implement hook_user_update().
+ * Implement hook__user_update().
  */
-function profile_user_update(&$edit, $account, $category) {
+function profile__user_update(&$edit, $account, $category) {
   return profile_save_profile($edit, $account, $category);
 }
 
 /**
- * Implement hook_user_insert().
+ * Implement hook__user_insert().
  */
-function profile_user_insert(&$edit, $account, $category) {
+function profile__user_insert(&$edit, $account, $category) {
   return profile_save_profile($edit, $account, $category, TRUE);
 }
 
 /**
- * Implement hook_user_form().
+ * Implement hook__user_form().
  */
-function profile_user_form(&$edit, $account, $category) {
+function profile__user_form(&$edit, $account, $category) {
   return profile_form_profile($edit, $account, $category);
 }
 
 /**
- * Implement hook_user_cancel().
+ * Implement hook__user_cancel().
  */
-function profile_user_cancel(&$edit, $account, $method) {
+function profile__user_cancel(&$edit, $account, $method) {
   switch ($method) {
     case 'user_cancel_reassign':
     case 'user_cancel_delete':
@@ -245,9 +245,9 @@ function profile_user_cancel(&$edit, $account, $method) {
 }
 
 /**
- * Implement hook_user_load().
+ * Implement hook__user_load().
  */
-function profile_user_load($users) {
+function profile__user_load($users) {
   $result = db_query('SELECT f.name, f.type, v.uid, v.value FROM {profile_field} f INNER JOIN {profile_value} v ON f.fid = v.fid WHERE uid IN (:uids)', array(':uids' => array_keys($users)));
   foreach ($result as $record) {
     if (empty($users[$record->uid]->{$record->name})) {
@@ -322,9 +322,9 @@ function profile_view_field($account, $field) {
 }
 
 /**
- * Implement hook_user_view().
+ * Implement hook__user_view().
  */
-function profile_user_view($account) {
+function profile__user_view($account) {
   // Show private fields to administrators and people viewing their own account.
   if (user_access('administer users') || $GLOBALS['user']->uid == $account->uid) {
     $result = db_query('SELECT * FROM {profile_field} WHERE visibility <> :hidden ORDER BY category, weight', array(':hidden' => PROFILE_HIDDEN));
@@ -458,9 +458,9 @@ function _profile_update_user_fields($fields, $account) {
 }
 
 /**
- * Implement hook_user_validate().
+ * Implement hook__user_validate().
  */
-function profile_user_validate(&$edit, $account, $category) {
+function profile__user_validate(&$edit, $account, $category) {
   $result = _profile_get_fields($category);
   foreach ($result as $field) {
     if ($edit[$field->name]) {
@@ -478,9 +478,9 @@ function profile_user_validate(&$edit, $account, $category) {
   return $edit;
 }
 /**
- * Implement hook_user_categories().
+ * Implement hook__user_categories().
  */
-function profile_user_categories() {
+function profile__user_categories() {
   $result = db_query("SELECT DISTINCT(category) FROM {profile_field}");
   $data = array();
   foreach ($result as $category) {
diff --git a/modules/search/search.api.php b/modules/search/search.api.php
index 5268fe5..69d0cfa 100644
--- a/modules/search/search.api.php
+++ b/modules/search/search.api.php
@@ -19,18 +19,18 @@
  * is performed.
  *
  * Note that you can use form API to extend the search. You will need to use
- * hook_form_alter() to add any additional required form elements. You can
+ * hook__form_alter() to add any additional required form elements. You can
  * process their values on submission using a custom validation function.
  * You will need to merge any custom search values into the search keys
  * using a key:value syntax. This allows all search queries to have a clean
  * and permanent URL. See node_form_search_form_alter() for an example.
  *
  * The example given here is for node.module, which uses the indexed search
- * capabilities. To do this, node module also implements hook_update_index()
+ * capabilities. To do this, node module also implements hook__update_index()
  * which is used to create and maintain the index.
  *
  * We call do_search() with the keys, the module name, and extra SQL fragments
- * to use when searching. See hook_update_index() for more information.
+ * to use when searching. See hook__update_index() for more information.
  *
  * @param $op
  *   A string defining which operation to perform:
@@ -39,10 +39,10 @@
  *   - 'name': The hook should return a translated name defining the type of
  *     items that are searched for with this module ('content', 'users', ...).
  *   - 'reset': The search index is going to be rebuilt. Modules which use
- *     hook_update_index() should update their indexing bookkeeping so that it
- *     starts from scratch the next time hook_update_index() is called.
+ *     hook__update_index() should update their indexing bookkeeping so that it
+ *     starts from scratch the next time hook__update_index() is called.
  *   - 'search': The hook should perform a search using the keywords in $keys.
- *   - 'status': If the module implements hook_update_index(), it should return
+ *   - 'status': If the module implements hook__update_index(), it should return
  *     an array containing the following keys:
  *     - remaining: The amount of items that still need to be indexed.
  *     - total: The total amount of items (both indexed and unindexed).
@@ -70,7 +70,7 @@
  *
  * @ingroup search
  */
-function hook_search($op = 'search', $keys = NULL) {
+function hook__search($op = 'search', $keys = NULL) {
   switch ($op) {
     case 'name':
       return t('Content');
@@ -214,7 +214,7 @@ function hook_search($op = 'search', $keys = NULL) {
  * @return
  *   The text after processing.
  */
-function hook_search_preprocess($text) {
+function hook__search_preprocess($text) {
   // Do processing on $text
   return $text;
 }
@@ -243,7 +243,7 @@ function hook_search_preprocess($text) {
  *
  * @ingroup search
  */
-function hook_update_index() {
+function hook__update_index() {
   $limit = (int)variable_get('search_cron_limit', 100);
 
   $result = db_query_range("SELECT n.nid FROM {node} n LEFT JOIN {search_dataset} d ON d.type = 'node' AND d.sid = n.nid WHERE d.sid IS NULL OR d.reindex <> 0 ORDER BY d.reindex ASC, n.nid ASC", 0, $limit);
diff --git a/modules/search/search.install b/modules/search/search.install
index 0548eeb..be6a73a 100644
--- a/modules/search/search.install
+++ b/modules/search/search.install
@@ -7,17 +7,17 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function search_install() {
+function search__install() {
   // Create tables.
   drupal_install_schema('search');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function search_uninstall() {
+function search__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('search');
 
@@ -27,9 +27,9 @@ function search_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function search_schema() {
+function search__schema() {
   $schema['search_dataset'] = array(
     'description' => 'Stores items that will be searched.',
     'fields' => array(
diff --git a/modules/search/search.module b/modules/search/search.module
index 2c9348e..695e564 100644
--- a/modules/search/search.module
+++ b/modules/search/search.module
@@ -91,9 +91,9 @@ define('PREG_CLASS_CJK', '\x{3041}-\x{30ff}\x{31f0}-\x{31ff}\x{3400}-\x{4db5}' .
 '\x{4e00}-\x{9fbb}\x{f900}-\x{fad9}');
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function search_help($path, $arg) {
+function search__help($path, $arg) {
   switch ($path) {
     case 'admin/help#search':
       $output = '<p>' . t('The search module adds the ability to search for content by keywords. Search is often the only practical way to find content on a large site, and is useful for finding both users and posts.') . '</p>';
@@ -112,9 +112,9 @@ function search_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function search_theme() {
+function search__theme() {
   return array(
     'search_theme_form' => array(
       'arguments' => array('form' => NULL),
@@ -141,9 +141,9 @@ function search_theme() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function search_permission() {
+function search__permission() {
   return array(
     'administer search' => array(
       'title' => t('Administer search'),
@@ -161,9 +161,9 @@ function search_permission() {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function search_block_list() {
+function search__block_list() {
   $blocks['form']['info'] = t('Search form');
   // Not worth caching.
   $blocks['form']['cache'] = BLOCK_NO_CACHE;
@@ -171,9 +171,9 @@ function search_block_list() {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  */
-function search_block_view($delta = '') {
+function search__block_view($delta = '') {
   if (user_access('search content')) {
     $block['content'] = drupal_get_form('search_block_form');
     $block['subject'] = t('Search');
@@ -182,9 +182,9 @@ function search_block_view($delta = '') {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function search_menu() {
+function search__menu() {
   $items['search'] = array(
     'title' => 'Search',
     'page callback' => 'search_view',
@@ -273,12 +273,12 @@ function search_dirty($word = NULL) {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  *
- * Fires hook_update_index() in all modules and cleans up dirty words (see
+ * Fires hook__update_index() in all modules and cleans up dirty words (see
  * search_dirty).
  */
-function search_cron() {
+function search__cron() {
   // We register a shutdown function to ensure that search_total is always up
   // to date.
   register_shutdown_function('search_update_totals');
@@ -405,7 +405,7 @@ function _search_index_truncate(&$text) {
 }
 
 /**
- * Invokes hook_search_preprocess() in modules.
+ * Invokes hook__search_preprocess() in modules.
  */
 function search_invoke_preprocess(&$text) {
   foreach (module_implements('search_preprocess') as $module) {
@@ -638,9 +638,9 @@ function search_touch_node($nid) {
 }
 
 /**
- * Implement hook_node_update_index().
+ * Implement hook__node_update_index().
  */
-function search_node_update_index($node) {
+function search__node_update_index($node) {
   // Transplant links to a node into the target node.
   $result = db_query("SELECT caption FROM {search_node_links} WHERE nid = %d", $node->nid);
   $output = array();
@@ -653,50 +653,50 @@ function search_node_update_index($node) {
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function search_node_update($node) {
+function search__node_update($node) {
   // Reindex the node when it is updated. The node is automatically indexed
   // when it is added, simply by being added to the node table.
   search_touch_node($node->nid);
 }
 
 /**
- * Implement hook_comment_insert().
+ * Implement hook__comment_insert().
  */
-function search_comment_insert($comment) {
+function search__comment_insert($comment) {
   // Reindex the node when comments are added.
   search_touch_node($comment->nid);
 }
 
 /**
- * Implement hook_comment_update().
+ * Implement hook__comment_update().
  */
-function search_comment_update($comment) {
+function search__comment_update($comment) {
   // Reindex the node when comments are changed.
   search_touch_node($comment->nid);
 }
 
 /**
- * Implement hook_comment_delete().
+ * Implement hook__comment_delete().
  */
-function search_comment_delete($comment) {
+function search__comment_delete($comment) {
   // Reindex the node when comments are deleted.
   search_touch_node($comment->nid);
 }
 
 /**
- * Implement hook_comment_publish().
+ * Implement hook__comment_publish().
  */
-function search_comment_publish($comment) {
+function search__comment_publish($comment) {
   // Reindex the node when comments are published.
   search_touch_node($comment->nid);
 }
 
 /**
- * Implement hook_comment_unpublish().
+ * Implement hook__comment_unpublish().
  */
-function search_comment_unpublish($comment) {
+function search__comment_unpublish($comment) {
   // Reindex the node when comments are unpublished.
   search_touch_node($comment->nid);
 }
@@ -901,7 +901,7 @@ function _search_parse_query(&$word, &$scores, $not = FALSE) {
  * Do a query on the full-text search index for a word or words.
  *
  * This function is normally only called by each module that support the
- * indexed search (and thus, implements hook_update_index()).
+ * indexed search (and thus, implements hook__update_index()).
  *
  * Results are retrieved in two logical passes. However, the two passes are
  * joined together into a single query. And in the case of most simple
@@ -1024,19 +1024,19 @@ function search_get_keys() {
  * for all of the search features to work.
  *
  * There are three ways to interact with the search system:
- * - Specifically for searching nodes, you can implement hook_node_update_index()
- *   and hook_node_search_result(). However, note that the search system already
+ * - Specifically for searching nodes, you can implement hook__node_update_index()
+ *   and hook__node_search_result(). However, note that the search system already
  *   indexes all visible output of a node, i.e. everything displayed normally
- *   by hook_view() and hook_node_view(). This is usually sufficient. You should
+ *   by hook__view() and hook__node_view(). This is usually sufficient. You should
  *   only use this mechanism if you want additional, non-visible data to be
  *   indexed.
- * - Implement hook_search(). This will create a search tab for your module on
+ * - Implement hook__search(). This will create a search tab for your module on
  *   the /search page with a simple keyword search form.
- * - Implement hook_update_index(). This allows your module to use Drupal's
+ * - Implement hook__update_index(). This allows your module to use Drupal's
  *   HTML indexing mechanism for searching full text efficiently.
  *
  * If your module needs to provide a more complicated search form, then you need
- * to implement it yourself without hook_search(). In that case, you should
+ * to implement it yourself without hook__search(). In that case, you should
  * define it as a local task (tab) under the /search page (e.g. /search/mymodule)
  * so that users can easily find it.
  */
@@ -1050,7 +1050,7 @@ function search_get_keys() {
  *   The search string entered by the user, containing keywords for the search.
  * @param $type
  *   The type of search to render the node for. Must be the name of module
- *   which implements hook_search(). Defaults to 'node'.
+ *   which implements hook__search(). Defaults to 'node'.
  * @param $prompt
  *   A piece of text to put before the form (e.g. "Enter your keywords")
  * @return
@@ -1325,7 +1325,7 @@ function _search_excerpt_replace(&$text) {
   $text = preg_quote($text, '/');
 }
 
-function search_forms() {
+function search__forms() {
   $forms['search_theme_form']= array(
     'callback' => 'search_box',
     'callback arguments' => array('search_theme_form'),
diff --git a/modules/search/search.pages.inc b/modules/search/search.pages.inc
index bbe30a8..35a4066 100644
--- a/modules/search/search.pages.inc
+++ b/modules/search/search.pages.inc
@@ -9,7 +9,7 @@
 /**
  * Menu callback; presents the search form and/or search results.
  */
-function search_view($type = 'node') {
+function search__view($type = 'node') {
   // Search form submits with POST but redirects to GET. This way we can keep
   // the search query URL clean as a whistle:
   // search/type/keyword+keyword
@@ -36,7 +36,7 @@ function search_view($type = 'node') {
       $build['search_results'] = array(
         '#theme' => 'search_results_listing',
         '#title' => empty($results) ? t('Your search yielded no results') : t('Search results'),
-        '#content' => empty($results) ? search_help('search#noresults', drupal_help_arg()) : $results,
+        '#content' => empty($results) ? search__help('search#noresults', drupal_help_arg()) : $results,
       );
 
       return $build;
diff --git a/modules/search/search.test b/modules/search/search.test
index 0472f99..921c3f2 100644
--- a/modules/search/search.test
+++ b/modules/search/search.test
@@ -246,7 +246,7 @@ class SearchAdvancedSearchForm extends DrupalWebTestCase {
     $this->node = $this->drupalCreateNode();
 
     // First update the index. This does the initial processing.
-    node_update_index();
+    node__update_index();
 
     // Then, run the shutdown function. Testing is a unique case where indexing
     // and searching has to happen in the same request, so running the shutdown
@@ -364,7 +364,7 @@ class SearchRankingTestCase extends DrupalWebTestCase {
       }
 
       // Do the search and assert the results.
-      $set = node_search('search', 'rocks');
+      $set = node__search('search', 'rocks');
       $this->assertEqual($set[0]['node']->nid, $nodes[$node_rank][1]->nid, 'Search ranking "' . $node_rank . '" order.');
     }
   }
diff --git a/modules/simpletest/simpletest.api.php b/modules/simpletest/simpletest.api.php
index 5251f08..3288358 100644
--- a/modules/simpletest/simpletest.api.php
+++ b/modules/simpletest/simpletest.api.php
@@ -16,7 +16,7 @@
  *
  * This hook is called just once at the beginning of a test group.
  */
-function hook_test_group_started() {
+function hook__test_group_started() {
 }
 
 /**
@@ -24,7 +24,7 @@ function hook_test_group_started() {
  *
  * This hook is called just once at the end of a test group.
  */
-function hook_test_group_finished() {
+function hook__test_group_finished() {
 }
 
 /**
@@ -37,7 +37,7 @@ function hook_test_group_finished() {
  *
  * @see DrupalWebTestCase->results
  */
-function hook_test_finished($results) {
+function hook__test_finished($results) {
 }
 
 
diff --git a/modules/simpletest/simpletest.install b/modules/simpletest/simpletest.install
index 971e05d..d8283db 100644
--- a/modules/simpletest/simpletest.install
+++ b/modules/simpletest/simpletest.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function simpletest_install() {
+function simpletest__install() {
   drupal_install_schema('simpletest');
   // Check for files directory.
   $path = file_directory_path() . '/simpletest';
@@ -99,9 +99,9 @@ function simpletest_get_file_count($directory, $filename) {
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function simpletest_uninstall() {
+function simpletest__uninstall() {
   simpletest_clean_environment();
 
   // Remove settings variables.
@@ -125,7 +125,7 @@ function simpletest_uninstall() {
 /**
  * Check that the cURL extension exists for PHP.
  */
-function simpletest_requirements($phase) {
+function simpletest__requirements($phase) {
   $requirements = array();
   $t = get_t();
 
@@ -162,7 +162,7 @@ function simpletest_requirements($phase) {
   return $requirements;
 }
 
-function simpletest_schema() {
+function simpletest__schema() {
   $schema['simpletest'] = array(
     'description' => 'Stores simpletest messages',
     'fields' => array(
diff --git a/modules/simpletest/simpletest.module b/modules/simpletest/simpletest.module
index f318938..171ed14 100644
--- a/modules/simpletest/simpletest.module
+++ b/modules/simpletest/simpletest.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function simpletest_help($path, $arg) {
+function simpletest__help($path, $arg) {
   switch ($path) {
     case 'admin/help#simpletest':
       $output  = '<p>' . t('The SimpleTest module is a framework for running automated unit tests in Drupal. It can be used to verify a working state of Drupal before and after any code changes, or as a means for developers to write and execute tests for their modules.') . '</p>';
@@ -22,9 +22,9 @@ function simpletest_help($path, $arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function simpletest_menu() {
+function simpletest__menu() {
   $items['admin/config/development/testing'] = array(
     'title' => 'Testing',
     'page callback' => 'drupal_get_form',
@@ -55,9 +55,9 @@ function simpletest_menu() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function simpletest_permission() {
+function simpletest__permission() {
   return array(
     'administer unit tests' => array(
       'title' => t('Administer unit tests'),
@@ -67,9 +67,9 @@ function simpletest_permission() {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function simpletest_theme() {
+function simpletest__theme() {
   return array(
     'simpletest_test_table' => array(
       'arguments' => array('table' => NULL),
@@ -83,9 +83,9 @@ function simpletest_theme() {
 }
 
 /**
- * Implement hook_js_alter().
+ * Implement hook__js_alter().
  */
-function simpletest_js_alter(&$javascript) {
+function simpletest__js_alter(&$javascript) {
   // Since SimpleTest is a special use case for the table select, stick the
   // SimpleTest JavaScript above the table select.
   $simpletest = drupal_get_path('module', 'simpletest') . '/simpletest.js';
@@ -281,7 +281,7 @@ function simpletest_log_read($test_id, $prefix, $test_class, $during_test = FALS
  * The list of test classes is loaded from the registry where it looks for
  * files ending in ".test". Once loaded the test list is cached and stored in
  * a static variable. In order to list tests provided by disabled modules
- * hook_registry_files_alter() is used to forcefully add them to the registry.
+ * hook__registry_files_alter() is used to forcefully add them to the registry.
  *
  * @return
  *   An array of tests keyed with the groups specified in each of the tests
@@ -297,7 +297,7 @@ function simpletest_log_read($test_id, $prefix, $test_class, $during_test = FALS
  *       ),
  *     );
  *   @endcode
- * @see simpletest_registry_files_alter()
+ * @see simpletest__registry_files_alter()
  */
 function simpletest_test_get_all() {
   $groups = &drupal_static(__FUNCTION__);
@@ -346,12 +346,12 @@ function simpletest_test_get_all() {
 }
 
 /**
- * Implementation of hook_registry_files_alter().
+ * Implementation of hook__registry_files_alter().
  *
  * Add the test files for disabled modules so that we get a list containing
  * all the avialable tests.
  */
-function simpletest_registry_files_alter(&$files, $modules) {
+function simpletest__registry_files_alter(&$files, $modules) {
   foreach ($modules as $module) {
     // Only add test files for disabled modules, as enabled modules should
     // already include any test files they provide.
diff --git a/modules/simpletest/tests/bootstrap.test b/modules/simpletest/tests/bootstrap.test
index 9ac60e2..a709840 100644
--- a/modules/simpletest/tests/bootstrap.test
+++ b/modules/simpletest/tests/bootstrap.test
@@ -227,14 +227,14 @@ class BootstrapVariableTestCase extends DrupalWebTestCase {
 }
 
 /**
- * Test hook_boot() and hook_exit().
+ * Test hook__boot() and hook__exit().
  */
 class HookBootExitTestCase extends DrupalWebTestCase {
 
   public static function getInfo() {
     return array(
       'name' => 'Boot and exit hook invocation',
-      'description' => 'Test that hook_boot() and hook_exit() are called correctly.',
+      'description' => 'Test that hook__boot() and hook__exit() are called correctly.',
       'group' => 'Bootstrap',
     );
   }
@@ -244,7 +244,7 @@ class HookBootExitTestCase extends DrupalWebTestCase {
   }
 
   /**
-   * Test calling of hook_boot() and hook_exit().
+   * Test calling of hook__boot() and hook__exit().
    */
   function testHookBootExit() {
     // Test with cache disabled. Boot and exit should always fire.
diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test
index ed8918c..74514e7 100644
--- a/modules/simpletest/tests/common.test
+++ b/modules/simpletest/tests/common.test
@@ -677,9 +677,9 @@ class JavaScriptTestCase extends DrupalWebTestCase {
   }
 
   /**
-   * Test altering a JavaScript's weight via hook_js_alter().
+   * Test altering a JavaScript's weight via hook__js_alter().
    *
-   * @see simpletest_js_alter()
+   * @see simpletest__js_alter()
    */
   function testAlter() {
     // Add both tableselect.js and simpletest.js, with a larger weight on SimpleTest.
@@ -687,7 +687,7 @@ class JavaScriptTestCase extends DrupalWebTestCase {
     drupal_add_js(drupal_get_path('module', 'simpletest') . '/simpletest.js', array('weight' => JS_THEME));
 
     // Render the JavaScript, testing if simpletest.js was altered to be before
-    // tableselect.js. See simpletest_js_alter() to see where this alteration
+    // tableselect.js. See simpletest__js_alter() to see where this alteration
     // takes place.
     $javascript = drupal_get_js();
     $this->assertTrue(strpos($javascript, 'simpletest.js') < strpos($javascript, 'misc/tableselect.js'), t('Altering JavaScript weight through the alter hook.'));
@@ -708,14 +708,14 @@ class JavaScriptTestCase extends DrupalWebTestCase {
   /**
    * Adds a JavaScript library to the page and alters it.
    *
-   * @see common_test_library_alter()
+   * @see common_test__library_alter()
    */
   function testLibraryAlter() {
     // Verify that common_test altered the title of Farbtastic.
     $library = drupal_get_library('system', 'farbtastic');
     $this->assertEqual($library['title'], 'Farbtastic: Altered Library', t('Registered libraries were altered.'));
 
-    // common_test_library_alter() also added a dependency on jQuery Form.
+    // common_test__library_alter() also added a dependency on jQuery Form.
     drupal_add_library('system', 'farbtastic');
     $scripts = drupal_get_js();
     $this->assertTrue(strpos($scripts, 'misc/jquery.form.js'), t('Altered library dependencies are added to the page.'));
@@ -724,7 +724,7 @@ class JavaScriptTestCase extends DrupalWebTestCase {
   /**
    * Tests that multiple modules can implement the same library.
    *
-   * @see common_test_library()
+   * @see common_test__library()
    */
   function testLibraryNameConflicts() {
     $farbtastic = drupal_get_library('common_test', 'farbtastic');
diff --git a/modules/simpletest/tests/common_test.module b/modules/simpletest/tests/common_test.module
index a651cf0..dfc8d24 100644
--- a/modules/simpletest/tests/common_test.module
+++ b/modules/simpletest/tests/common_test.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function common_test_theme() {
+function common_test__theme() {
   return array(
     'common_test_foo' => array(
       'arguments' => array('foo' => 'foo', 'bar' => 'bar'),
@@ -25,9 +25,9 @@ function theme_common_test_foo($foo, $bar) {
 }
 
 /**
- * Implementation of hook_library_alter().
+ * Implementation of hook__library_alter().
  */
-function common_test_library_alter(&$libraries, $module) {
+function common_test__library_alter(&$libraries, $module) {
   if ($module == 'system' && isset($libraries['farbtastic'])) {
     // Change the title of Farbtastic to "Farbtastic: Altered Library".
     $libraries['farbtastic']['title'] = 'Farbtastic: Altered Library';
@@ -37,11 +37,11 @@ function common_test_library_alter(&$libraries, $module) {
 }
 
 /**
- * Implementation of hook_library().
+ * Implementation of hook__library().
  *
  * Adds Farbtastic in a different version.
  */
-function common_test_library() {
+function common_test__library() {
   $libraries['farbtastic'] = array(
     'title' => 'Custom Farbtastic Library',
     'website' => 'http://code.google.com/p/farbtastic/',
diff --git a/modules/simpletest/tests/database_test.install b/modules/simpletest/tests/database_test.install
index 9cd8906..3525931 100644
--- a/modules/simpletest/tests/database_test.install
+++ b/modules/simpletest/tests/database_test.install
@@ -7,14 +7,14 @@
  */
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  *
  * The database tests use the database API which depends on schema
  * information for certain operations on certain databases.
  * Therefore, the schema must actually be declared in a normal module
  * like any other, not directly in the test file.
  */
-function database_test_schema() {
+function database_test__schema() {
   $schema['test'] = array(
     'description' => 'Basic test table for the database unit tests.',
     'fields' => array(
@@ -206,15 +206,15 @@ function database_test_schema() {
 }
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function database_test_install() {
+function database_test__install() {
   drupal_install_schema('database_test');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function database_test_uninstall() {
+function database_test__uninstall() {
   drupal_uninstall_schema('database_test');
 }
diff --git a/modules/simpletest/tests/database_test.module b/modules/simpletest/tests/database_test.module
index f92fa88..a9d73d3 100644
--- a/modules/simpletest/tests/database_test.module
+++ b/modules/simpletest/tests/database_test.module
@@ -2,9 +2,9 @@
 // $Id: database_test.module,v 1.9 2009-05-27 18:34:00 dries Exp $
 
 /**
- * Implement hook_query_alter().
+ * Implement hook__query_alter().
  */
-function database_test_query_alter(QueryAlterableInterface $query) {
+function database_test__query_alter(QueryAlterableInterface $query) {
 
   if ($query->hasTag('database_test_alter_add_range')) {
     $query->range(0, 2);
@@ -34,16 +34,16 @@ function database_test_query_alter(QueryAlterableInterface $query) {
 
 
 /**
- * Implement hook_query_TAG_alter(). Called by DatabaseTestCase::testAlterRemoveRange.
+ * Implement hook__query_TAG_alter(). Called by DatabaseTestCase::testAlterRemoveRange.
  */
 function database_test_query_database_test_alter_remove_range_alter(QueryAlterableInterface $query) {
   $query->range();
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function database_test_menu() {
+function database_test__menu() {
   $items['database_test/db_query_temporary'] = array(
     'access callback' => TRUE,
     'page callback' => 'database_test_db_query_temporary',
diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test
index 423ddb6..9ade008 100644
--- a/modules/simpletest/tests/database_test.test
+++ b/modules/simpletest/tests/database_test.test
@@ -2009,7 +2009,7 @@ class DatabaseTaggingTestCase extends DatabaseTestCase {
 /**
  * Select alter tests.
  *
- * @see database_test_query_alter().
+ * @see database_test__query_alter().
  */
 class DatabaseAlterTestCase extends DatabaseTestCase {
 
@@ -2093,7 +2093,7 @@ class DatabaseAlterTestCase extends DatabaseTestCase {
 /**
  * Select alter tests, part 2.
  *
- * @see database_test_query_alter().
+ * @see database_test__query_alter().
  */
 class DatabaseAlter2TestCase extends DatabaseTestCase {
 
@@ -2139,7 +2139,7 @@ class DatabaseAlter2TestCase extends DatabaseTestCase {
   }
 
   /**
-   * Test that we can remove a range() value from a query. This also tests hook_query_TAG_alter().
+   * Test that we can remove a range() value from a query. This also tests hook__query_TAG_alter().
    */
   function testAlterRemoveRange() {
     $query = db_select('test');
diff --git a/modules/simpletest/tests/error_test.module b/modules/simpletest/tests/error_test.module
index 02b7ab5..1063f07 100644
--- a/modules/simpletest/tests/error_test.module
+++ b/modules/simpletest/tests/error_test.module
@@ -2,9 +2,9 @@
 // $Id: error_test.module,v 1.3 2009-05-30 11:17:32 dries Exp $
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function error_test_menu() {
+function error_test__menu() {
   $items['error-test/generate-warnings'] = array(
     'title' => 'Generate warnings',
     'page callback' => 'error_test_generate_warnings',
diff --git a/modules/simpletest/tests/field_test.install b/modules/simpletest/tests/field_test.install
index 191ed95..cbbb03f 100644
--- a/modules/simpletest/tests/field_test.install
+++ b/modules/simpletest/tests/field_test.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function field_test_schema() {
+function field_test__schema() {
   $schema['test_entity'] = array(
     'description' => 'The base table for test_entities.',
     'fields' => array(
@@ -66,15 +66,15 @@ function field_test_schema() {
 }
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function field_test_install() {
+function field_test__install() {
   drupal_install_schema('field_test');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function field_test_uninstall() {
+function field_test__uninstall() {
   drupal_uninstall_schema('field_test');
 }
diff --git a/modules/simpletest/tests/field_test.module b/modules/simpletest/tests/field_test.module
index 08b3a4d..e8165ec 100644
--- a/modules/simpletest/tests/field_test.module
+++ b/modules/simpletest/tests/field_test.module
@@ -5,9 +5,9 @@ define('FIELD_TEST_ELEMENT_ID', 1);
 define('FIELD_TEST_BUNDLE', 'test_bundle');
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function field_test_permission() {
+function field_test__permission() {
   $perms = array(
     'access field_test content' => array(
       'title' => t('Access field_test content'),
@@ -22,9 +22,9 @@ function field_test_permission() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function field_test_menu() {
+function field_test__menu() {
   $items = array();
   $bundles = field_info_bundles('test_entity');
 
@@ -60,7 +60,7 @@ function field_test_menu() {
 /**
  * Define a test fieldable entity.
  */
-function field_test_fieldable_info() {
+function field_test__fieldable_info() {
   $bundles = variable_get('field_test_bundles', array('test_bundle' => array('label' => 'Test Bundle')));
   return array(
     'test_entity' => array(
@@ -136,9 +136,9 @@ function field_test_delete_bundle($bundle_name) {
 }
 
 /**
- * Implement hook_field_build_modes().
+ * Implement hook__field_build_modes().
  */
-function field_test_field_build_modes($obj_type) {
+function field_test__field_build_modes($obj_type) {
   $modes = array();
   if ($obj_type == 'test_entity' || $obj_type == 'test_cacheable_entity') {
     $modes = array(
@@ -330,11 +330,11 @@ function field_test_entity_form_submit_builder($form, &$form_state) {
  */
 
 /**
- * Implement hook_field_info().
+ * Implement hook__field_info().
  *
  * This field provides a textfield which only accepts the value 1.
  */
-function field_test_field_info() {
+function field_test__field_info() {
   return array(
     'test_field' => array(
       'label' => t('Test Field'),
@@ -352,9 +352,9 @@ function field_test_field_info() {
 }
 
 /**
- * Implement hook_field_schema().
+ * Implement hook__field_schema().
  */
-function field_test_field_schema($field) {
+function field_test__field_schema($field) {
   return array(
     'columns' => array(
       'value' => array(
@@ -370,9 +370,9 @@ function field_test_field_schema($field) {
 }
 
 /**
- * Implement hook_field_load().
+ * Implement hook__field_load().
  */
-function field_test_field_load($obj_type, $objects, $field, $instances, &$items, $age) {
+function field_test__field_load($obj_type, $objects, $field, $instances, &$items, $age) {
   foreach ($items as $id => $item) {
     // To keep the test non-intrusive, only act for instances with the
     // test_hook_field_load setting explicitly set to TRUE.
@@ -388,12 +388,12 @@ function field_test_field_load($obj_type, $objects, $field, $instances, &$items,
 }
 
 /**
- * Implement hook_field_validate().
+ * Implement hook__field_validate().
  *
  * Possible error codes:
  * - 'field_test_invalid': The value is invalid.
  */
-function field_test_field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
+function field_test__field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
   foreach ($items as $delta => $item) {
     if ($item['value'] == -1) {
       $errors[$field['field_name']][$delta][] = array(
@@ -405,9 +405,9 @@ function field_test_field_validate($obj_type, $object, $field, $instance, $items
 }
 
 /**
- * Implement hook_field_sanitize().
+ * Implement hook__field_sanitize().
  */
-function field_test_field_sanitize($obj_type, $object, $field, $instance, &$items) {
+function field_test__field_sanitize($obj_type, $object, $field, $instance, &$items) {
   foreach ($items as $delta => $item) {
     $value = check_plain($item['value']);
     $items[$delta]['safe'] = $value;
@@ -415,14 +415,14 @@ function field_test_field_sanitize($obj_type, $object, $field, $instance, &$item
 }
 
 /**
- * Implement hook_field_is_empty().
+ * Implement hook__field_is_empty().
  */
 function field_test__field_is_empty($item, $field) {
   return empty($item['value']);
 }
 
 /**
- * Implement hook_field_widget_info().
+ * Implement hook__field_widget_info().
  *
  * Here we indicate that the content module will handle
  * the default value and multiple values for these widgets.
@@ -432,7 +432,7 @@ function field_test__field_is_empty($item, $field) {
  * as an example for custom modules that might do things
  * differently.
  */
-function field_test_field_widget_info() {
+function field_test__field_widget_info() {
   return array(
     'test_field_widget' => array(
       'label' => t('Test field'),
@@ -456,7 +456,7 @@ function field_test_field_widget_info() {
 }
 
 /**
- * Implement hook_field_widget().
+ * Implement hook__field_widget().
  *
  * Attach a single form element to the form. It will be built out and
  * validated in the callback(s) listed in hook_elements. We build it
@@ -488,7 +488,7 @@ function field_test_field_widget_info() {
  * @return
  *   the form item for a single element for this field
  */
-function field_test_field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) {
+function field_test__field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) {
   $element = array(
     'value' => array(
       '#title' => $instance['label'],
@@ -501,16 +501,16 @@ function field_test_field_widget(&$form, &$form_state, $field, $instance, $items
 }
 
 /**
- * Implement hook_field_widget_error().
+ * Implement hook__field_widget_error().
  */
-function field_test_field_widget_error($element, $error) {
+function field_test__field_widget_error($element, $error) {
   form_error($element['value'], $error['message']);
 }
 
 /**
- * Implement hook_field_formatter_info().
+ * Implement hook__field_formatter_info().
  */
-function field_test_field_formatter_info() {
+function field_test__field_formatter_info() {
   return array(
     'field_test_default' => array(
       'label' => t('Default'),
@@ -536,9 +536,9 @@ function field_test_field_formatter_info() {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function field_test_theme() {
+function field_test__theme() {
   return array(
     'field_formatter_field_test_default' => array(
       'arguments' => array('element' => NULL),
@@ -608,7 +608,7 @@ function field_test_default_value($obj_type, $object, $field, $instance) {
  *   // retrieve and reset the memorized hook call data
  *   $mem = field_test_memorize();
  *
- *   // make sure hook_field_create_field() is invoked correctly
+ *   // make sure hook__field_create_field() is invoked correctly
  *   assertEqual(count($mem['field_test_field_create_field']), 1);
  *   assertEqual($mem['field_test_field_create_field'][0], array($field));
  * @endcode
@@ -635,33 +635,33 @@ function field_test_memorize($key = NULL, $value = NULL) {
 }
 
 /**
- * Memorize calls to hook_field_create_field().
+ * Memorize calls to hook__field_create_field().
  */
-function field_test_field_create_field($field) {
+function field_test__field_create_field($field) {
   $args = func_get_args();
   field_test_memorize(__FUNCTION__, $args);
 }
 
 /**
- * Memorize calls to hook_field_insert().
+ * Memorize calls to hook__field_insert().
  */
-function field_test_field_insert($obj_type, $object, $field, $instance, $items) {
+function field_test__field_insert($obj_type, $object, $field, $instance, $items) {
   $args = func_get_args();
   field_test_memorize(__FUNCTION__, $args);
 }
 
 /**
- * Memorize calls to hook_field_update().
+ * Memorize calls to hook__field_update().
  */
-function field_test_field_update($obj_type, $object, $field, $instance, $items) {
+function field_test__field_update($obj_type, $object, $field, $instance, $items) {
   $args = func_get_args();
   field_test_memorize(__FUNCTION__, $args);
 }
 
 /**
- * Memorize calls to hook_field_delete().
+ * Memorize calls to hook__field_delete().
  */
-function field_test_field_delete($obj_type, $object, $field, $instance, $items) {
+function field_test__field_delete($obj_type, $object, $field, $instance, $items) {
   $args = func_get_args();
   field_test_memorize(__FUNCTION__, $args);
 }
diff --git a/modules/simpletest/tests/file.test b/modules/simpletest/tests/file.test
index ad6e22a..8c6d659 100644
--- a/modules/simpletest/tests/file.test
+++ b/modules/simpletest/tests/file.test
@@ -1260,7 +1260,7 @@ class FileDeleteTest extends FileHookTestCase {
     $this->assertFalse(file_exists($file->filepath), t("Test file has actually been deleted."));
     $this->assertFalse(file_load($file->fid), t('File was removed from the database.'));
 
-    // TODO: implement hook_file_references() in file_test.module and report a
+    // TODO: implement hook__file_references() in file_test.module and report a
     // file in use and test the $force parameter.
   }
 }
@@ -1632,7 +1632,7 @@ class FileLoadTest extends FileHookTestCase {
     $this->assertEqual($by_fid_file->filename, $file->filename, t("Loading by fid got the correct filename."), 'File');
     $this->assertEqual($by_fid_file->filemime, $file->filemime, t("Loading by fid got the correct MIME type."), 'File');
     $this->assertEqual($by_fid_file->status, $file->status, t("Loading by fid got the correct status."), 'File');
-    $this->assertTrue($by_fid_file->file_test['loaded'], t('file_test_file_load() was able to modify the file during load.'));
+    $this->assertTrue($by_fid_file->file_test['loaded'], t('file_test__file_load() was able to modify the file during load.'));
   }
 
   /**
@@ -1656,7 +1656,7 @@ class FileLoadTest extends FileHookTestCase {
     $this->assertFileHookCalled('load');
     $this->assertEqual(1, count($by_path_files), t('file_load_multiple() returned an array of the correct size.'));
     $by_path_file = reset($by_path_files);
-    $this->assertTrue($by_path_file->file_test['loaded'], t('file_test_file_load() was able to modify the file during load.'));
+    $this->assertTrue($by_path_file->file_test['loaded'], t('file_test__file_load() was able to modify the file during load.'));
     $this->assertEqual($by_path_file->fid, $file->fid, t("Loading by filepath got the correct fid."), 'File');
 
     // Load by fid.
@@ -1665,7 +1665,7 @@ class FileLoadTest extends FileHookTestCase {
     $this->assertFileHookCalled('load');
     $this->assertEqual(1, count($by_fid_files), t('file_load_multiple() returned an array of the correct size.'));
     $by_fid_file = reset($by_fid_files);
-    $this->assertTrue($by_fid_file->file_test['loaded'], t('file_test_file_load() was able to modify the file during load.'));
+    $this->assertTrue($by_fid_file->file_test['loaded'], t('file_test__file_load() was able to modify the file during load.'));
     $this->assertEqual($by_fid_file->filepath, $file->filepath, t("Loading by fid got the correct filepath."), 'File');
   }
 }
diff --git a/modules/simpletest/tests/file_test.module b/modules/simpletest/tests/file_test.module
index ae1e724..24bc125 100644
--- a/modules/simpletest/tests/file_test.module
+++ b/modules/simpletest/tests/file_test.module
@@ -10,9 +10,9 @@
  */
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function file_test_menu() {
+function file_test__menu() {
   $items['file-test/upload'] = array(
     'title' => t('Upload test'),
     'page callback' => 'drupal_get_form',
@@ -24,9 +24,9 @@ function file_test_menu() {
 }
 
 /**
- * Implement hook_stream_wrappers().
+ * Implement hook__stream_wrappers().
  */
-function file_test_stream_wrappers() {
+function file_test__stream_wrappers() {
   return array(
     'dummy' => array(
       'name' => t('Dummy files'),
@@ -182,9 +182,9 @@ function file_test_set_return($op, $value) {
 }
 
 /**
- * Implement hook_file_load().
+ * Implement hook__file_load().
  */
-function file_test_file_load($files) {
+function file_test__file_load($files) {
   foreach ($files as $file) {
     _file_test_log_call('load', array($file));
     // Assign a value on the object so that we can test that the $file is passed
@@ -194,61 +194,61 @@ function file_test_file_load($files) {
 }
 
 /**
- * Implement hook_file_validate().
+ * Implement hook__file_validate().
  */
-function file_test_file_validate($file) {
+function file_test__file_validate($file) {
   _file_test_log_call('validate', array($file));
   return _file_test_get_return('validate');
 }
 
 /**
- * Implement hook_file_download().
+ * Implement hook__file_download().
  */
-function file_test_file_download($file) {
+function file_test__file_download($file) {
   _file_test_log_call('download', array($file));
   return _file_test_get_return('download');
 }
 
 /**
- * Implement hook_file_references().
+ * Implement hook__file_references().
  */
-function file_test_file_references($file) {
+function file_test__file_references($file) {
   _file_test_log_call('references', array($file));
   return _file_test_get_return('references');
 }
 
 /**
- * Implement hook_file_insert().
+ * Implement hook__file_insert().
  */
-function file_test_file_insert($file) {
+function file_test__file_insert($file) {
   _file_test_log_call('insert', array($file));
 }
 
 /**
- * Implement hook_file_update().
+ * Implement hook__file_update().
  */
-function file_test_file_update($file) {
+function file_test__file_update($file) {
   _file_test_log_call('update', array($file));
 }
 
 /**
- * Implement hook_file_copy().
+ * Implement hook__file_copy().
  */
-function file_test_file_copy($file, $source) {
+function file_test__file_copy($file, $source) {
   _file_test_log_call('copy', array($file, $source));
 }
 
 /**
- * Implement hook_file_move().
+ * Implement hook__file_move().
  */
-function file_test_file_move($file, $source) {
+function file_test__file_move($file, $source) {
   _file_test_log_call('move', array($file, $source));
 }
 
 /**
- * Implement hook_file_delete().
+ * Implement hook__file_delete().
  */
-function file_test_file_delete($file) {
+function file_test__file_delete($file) {
   _file_test_log_call('delete', array($file));
 }
 
diff --git a/modules/simpletest/tests/form_test.module b/modules/simpletest/tests/form_test.module
index fda6ab6..0da273b 100644
--- a/modules/simpletest/tests/form_test.module
+++ b/modules/simpletest/tests/form_test.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function form_test_menu() {
+function form_test__menu() {
   $items = array();
 
   $items['form_test/tableselect/multiple-true'] = array(
diff --git a/modules/simpletest/tests/image.test b/modules/simpletest/tests/image.test
index 91d3517..98bb6b4 100644
--- a/modules/simpletest/tests/image.test
+++ b/modules/simpletest/tests/image.test
@@ -79,7 +79,7 @@ class ImageToolkitUnitTest extends ImageToolkitTestCase {
   }
 
   /**
-   * Check that hook_image_toolkits() is called and only available toolkits are
+   * Check that hook__image_toolkits() is called and only available toolkits are
    * returned.
    */
   function testGetAvailableToolkits() {
diff --git a/modules/simpletest/tests/image_test.module b/modules/simpletest/tests/image_test.module
index 881a284..368bb11 100644
--- a/modules/simpletest/tests/image_test.module
+++ b/modules/simpletest/tests/image_test.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_image_toolkits().
+ * Implement hook__image_toolkits().
  */
-function image_test_image_toolkits() {
+function image_test__image_toolkits() {
   return array(
     'test' => array(
       'title' => t('A dummy toolkit that works'),
diff --git a/modules/simpletest/tests/menu.test b/modules/simpletest/tests/menu.test
index e438d14..df9777e 100644
--- a/modules/simpletest/tests/menu.test
+++ b/modules/simpletest/tests/menu.test
@@ -76,7 +76,7 @@ class MenuIncTestCase extends DrupalWebTestCase {
   }
 
   /**
-   * Tests for menu_name parameter for hook_menu().
+   * Tests for menu_name parameter for hook__menu().
    */
   function testMenuName() {
     $admin_user = $this->drupalCreateUser(array('administer site configuration'));
diff --git a/modules/simpletest/tests/menu_test.module b/modules/simpletest/tests/menu_test.module
index 06ca307..af9b8dd 100644
--- a/modules/simpletest/tests/menu_test.module
+++ b/modules/simpletest/tests/menu_test.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function menu_test_menu() {
+function menu_test__menu() {
   // The name of the menu changes during the course of the test. Using a $_GET.
   $items['menu_name_test'] = array(
     'title' => 'Test menu_name router item',
@@ -48,7 +48,7 @@ function menu_test_menu() {
 }
 
 /**
- * Dummy callback for hook_menu() to point to.
+ * Dummy callback for hook__menu() to point to.
  *
  * @return
  *  A random string.
diff --git a/modules/simpletest/tests/module.test b/modules/simpletest/tests/module.test
index 27f3c7f..e8ea632 100644
--- a/modules/simpletest/tests/module.test
+++ b/modules/simpletest/tests/module.test
@@ -96,10 +96,10 @@ class ModuleUninstallTestCase extends DrupalWebTestCase {
   }
 
   /**
-   * Tests the hook_modules_uninstalled() of the user module.
+   * Tests the hook__modules_uninstalled() of the user module.
    */
   function testUserPermsUninstalled() {
-    // Uninstalls the module_test module, so hook_modules_uninstalled()
+    // Uninstalls the module_test module, so hook__modules_uninstalled()
     // is executed.
     drupal_uninstall_modules(array('module_test'));
 
diff --git a/modules/simpletest/tests/module_test.module b/modules/simpletest/tests/module_test.module
index 457ad42..f9dabc3 100644
--- a/modules/simpletest/tests/module_test.module
+++ b/modules/simpletest/tests/module_test.module
@@ -2,9 +2,9 @@
 // $Id: module_test.module,v 1.2 2009-07-05 18:00:10 dries Exp $
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function module_test_permission() {
+function module_test__permission() {
   return array(
     'module_test perm' => t('example perm for module_test module'),
   );
diff --git a/modules/simpletest/tests/session.test b/modules/simpletest/tests/session.test
index 0f0e051..d016e6d 100644
--- a/modules/simpletest/tests/session.test
+++ b/modules/simpletest/tests/session.test
@@ -41,7 +41,7 @@ class SessionTestCase extends DrupalWebTestCase {
     $this->drupalLogout();
 
     // Verify that the session is regenerated if a module calls exit
-    // in hook_user_login().
+    // in hook__user_login().
     user_save($user, array('name' => 'session_test_user'));
     $user->name = 'session_test_user';
     $this->drupalGet('session-test/id');
@@ -51,7 +51,7 @@ class SessionTestCase extends DrupalWebTestCase {
     $original_session = $matches[1];
 
     // We cannot use $this->drupalLogin($user); because we exit in
-    // session_test_user_login() which breaks a normal assertion.
+    // session_test__user_login() which breaks a normal assertion.
     $edit = array(
       'name' => $user->name,
       'pass' => $user->pass_raw
diff --git a/modules/simpletest/tests/session_test.module b/modules/simpletest/tests/session_test.module
index 3c904c4..dbba717 100644
--- a/modules/simpletest/tests/session_test.module
+++ b/modules/simpletest/tests/session_test.module
@@ -2,9 +2,9 @@
 // $Id: session_test.module,v 1.10 2009-07-01 12:47:30 dries Exp $
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function session_test_menu() {
+function session_test__menu() {
   $items['session-test/get'] = array(
     'title' => t('Session value'),
     'page callback' => '_session_test_get',
@@ -54,9 +54,9 @@ function session_test_menu() {
 }
 
 /**
- * Implement hook_boot().
+ * Implement hook__boot().
  */
-function session_test_boot() {
+function session_test__boot() {
   header('X-Session-Empty: ' . intval(empty($_SESSION)));
 }
 
@@ -135,7 +135,7 @@ function _session_test_set_not_started() {
 /**
  * Implement hook_user().
  */
-function session_test_user_login($edit = array(), $user = NULL) {
+function session_test__user_login($edit = array(), $user = NULL) {
   if ($user->name == 'session_test_user') {
     // Exit so we can verify that the session was regenerated
     // before hook_user() was called.
diff --git a/modules/simpletest/tests/system_test.module b/modules/simpletest/tests/system_test.module
index 9e08a85..e4b3306 100644
--- a/modules/simpletest/tests/system_test.module
+++ b/modules/simpletest/tests/system_test.module
@@ -2,9 +2,9 @@
 // $Id: system_test.module,v 1.14 2009-08-05 16:16:41 webchick Exp $
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function system_test_menu() {
+function system_test__menu() {
   $items['system-test/sleep/%'] = array(
     'page callback' => 'system_test_sleep',
     'page arguments' => array(2),
@@ -106,52 +106,52 @@ function system_test_destination() {
 }
 
 /**
- * Implement hook_modules_installed().
+ * Implement hook__modules_installed().
  */
-function system_test_modules_installed($modules) {
+function system_test__modules_installed($modules) {
   if (in_array('aggregator', $modules)) {
     drupal_set_message(t('hook_modules_installed fired for aggregator'));
   }
 }
 
 /**
- * Implement hook_modules_enabled().
+ * Implement hook__modules_enabled().
  */
-function system_test_modules_enabled($modules) {
+function system_test__modules_enabled($modules) {
   if (in_array('aggregator', $modules)) {
     drupal_set_message(t('hook_modules_enabled fired for aggregator'));
   }
 }
 
 /**
- * Implement hook_modules_disabled().
+ * Implement hook__modules_disabled().
  */
-function system_test_modules_disabled($modules) {
+function system_test__modules_disabled($modules) {
   if (in_array('aggregator', $modules)) {
     drupal_set_message(t('hook_modules_disabled fired for aggregator'));
   }
 }
 
 /**
- * Implement hook_modules_uninstalled().
+ * Implement hook__modules_uninstalled().
  */
-function system_test_modules_uninstalled($modules) {
+function system_test__modules_uninstalled($modules) {
   if (in_array('aggregator', $modules)) {
     drupal_set_message(t('hook_modules_uninstalled fired for aggregator'));
   }
 }
 
 /**
- * Implement hook_boot().
+ * Implement hook__boot().
  */
-function system_test_boot() {
+function system_test__boot() {
   watchdog('system_test', 'hook_boot');
 }
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function system_test_init() {
+function system_test__init() {
   // Used by FrontPageTestCase to get the results of drupal_is_front_page().
   if (variable_get('front_page_output', 0) && drupal_is_front_page()) {
     drupal_set_message(t('On front page.'));
@@ -159,16 +159,16 @@ function system_test_init() {
 }
 
 /**
- * Implement hook_exit().
+ * Implement hook__exit().
  */
-function system_test_exit() {
+function system_test__exit() {
   watchdog('system_test', 'hook_exit');
 }
 
 /**
- * Implement hook_system_info_alter().
+ * Implement hook__system_info_alter().
  */
-function system_test_system_info_alter(&$info, $file) {
+function system_test__system_info_alter(&$info, $file) {
   // We need a static otherwise the last test will fail to alter common_test.
   static $test;
   if (($dependencies = variable_get('dependencies', array())) || $test) {
diff --git a/modules/simpletest/tests/taxonomy_test.install b/modules/simpletest/tests/taxonomy_test.install
index 9160711..2868392 100644
--- a/modules/simpletest/tests/taxonomy_test.install
+++ b/modules/simpletest/tests/taxonomy_test.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function taxonomy_test_schema() {
+function taxonomy_test__schema() {
   $schema['taxonomy_term_antonym'] = array(
     'description' => 'Stores term antonym.',
     'fields' => array(
@@ -35,16 +35,16 @@ function taxonomy_test_schema() {
 }
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function taxonomy_test_install() {
+function taxonomy_test__install() {
   drupal_install_schema('taxonomy_test');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function taxonomy_test_uninstall() {
+function taxonomy_test__uninstall() {
   drupal_uninstall_schema('taxonomy_test');
 }
 
diff --git a/modules/simpletest/tests/taxonomy_test.module b/modules/simpletest/tests/taxonomy_test.module
index f78c458..6ed8a63 100644
--- a/modules/simpletest/tests/taxonomy_test.module
+++ b/modules/simpletest/tests/taxonomy_test.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_taxonomy_term_load().
+ * Implement hook__taxonomy_term_load().
  */
-function taxonomy_test_taxonomy_term_load(&$terms) {
+function taxonomy_test__taxonomy_term_load(&$terms) {
   foreach ($terms as $term) {
     $antonym = taxonomy_test_get_antonym($term->tid);
     if ($antonym) {
@@ -19,9 +19,9 @@ function taxonomy_test_taxonomy_term_load(&$terms) {
 }
 
 /**
- * Implement hook_taxonomy_term_insert().
+ * Implement hook__taxonomy_term_insert().
  */
-function taxonomy_test_taxonomy_term_insert($term) {
+function taxonomy_test__taxonomy_term_insert($term) {
   if (!empty($term->antonym)) {
     db_insert('taxonomy_term_antonym')
       ->fields(array(
@@ -33,9 +33,9 @@ function taxonomy_test_taxonomy_term_insert($term) {
 }
 
 /**
- * Implement hook_taxonomy_term_update().
+ * Implement hook__taxonomy_term_update().
  */
-function taxonomy_test_taxonomy_term_update($term) {
+function taxonomy_test__taxonomy_term_update($term) {
   if (!empty($term->antonym)) {
     db_merge('taxonomy_term_antonym')
       ->key(array('tid' => $term->tid))
@@ -47,18 +47,18 @@ function taxonomy_test_taxonomy_term_update($term) {
 }
 
 /**
- * Implement hook_taxonomy_term_delete().
+ * Implement hook__taxonomy_term_delete().
  */
-function taxonomy_test_taxonomy_term_delete($term) {
+function taxonomy_test__taxonomy_term_delete($term) {
   db_delete('taxonomy_term_antonym')
     ->condition('tid', $term->tid)
     ->execute();
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  */
-function taxonomy_test_form_alter(&$form, $form_state, $form_id) {
+function taxonomy_test__form_alter(&$form, $form_state, $form_id) {
   if ($form_id == 'taxonomy_form_term') {
     $antonym = taxonomy_test_get_antonym($form['#term']['tid']);
     $form['advanced']['antonym'] = array(
diff --git a/modules/simpletest/tests/xmlrpc_test.module b/modules/simpletest/tests/xmlrpc_test.module
index 15dfeb2..657b39f 100644
--- a/modules/simpletest/tests/xmlrpc_test.module
+++ b/modules/simpletest/tests/xmlrpc_test.module
@@ -47,9 +47,9 @@ function xmlrpc_test_simpleStructReturnTest($number) {
 }
 
 /**
- * Implement hook_xmlrpc()
+ * Implement hook__xmlrpc()
  */
-function xmlrpc_test_xmlrpc() {
+function xmlrpc_test__xmlrpc() {
   return array(
     'validator1.arrayOfStructsTest' => 'xmlrpc_test_arrayOfStructsTest',
     'validator1.countTheEntities' => 'xmlrpc_test_countTheEntities',
diff --git a/modules/statistics/statistics.install b/modules/statistics/statistics.install
index 65a0b1f..887fb1b 100644
--- a/modules/statistics/statistics.install
+++ b/modules/statistics/statistics.install
@@ -7,17 +7,17 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function statistics_install() {
+function statistics__install() {
   // Create tables.
   drupal_install_schema('statistics');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function statistics_uninstall() {
+function statistics__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('statistics');
 
@@ -32,9 +32,9 @@ function statistics_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function statistics_schema() {
+function statistics__schema() {
   $schema['accesslog'] = array(
     'description' => 'Stores site access information for statistics.',
     'fields' => array(
diff --git a/modules/statistics/statistics.module b/modules/statistics/statistics.module
index 7f9fea7..1976538 100644
--- a/modules/statistics/statistics.module
+++ b/modules/statistics/statistics.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function statistics_help($path, $arg) {
+function statistics__help($path, $arg) {
   switch ($path) {
     case 'admin/help#statistics':
       $output = '<p>' . t('The statistics module keeps track of numerous site usage statistics, including the number of times, and from where, each of your posts is viewed. These statistics are useful in determining how users are interacting with each other and with your site, and are required for the display of some Drupal blocks.') . '</p>';
@@ -38,11 +38,11 @@ function statistics_help($path, $arg) {
 }
 
 /**
- * Implement hook_exit().
+ * Implement hook__exit().
  *
  * This is where statistics are gathered on page accesses.
  */
-function statistics_exit() {
+function statistics__exit() {
   global $user;
 
   drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);
@@ -81,9 +81,9 @@ function statistics_exit() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function statistics_permission() {
+function statistics__permission() {
   return array(
     'access statistics' => array(
       'title' => t('Access statistics'),
@@ -101,9 +101,9 @@ function statistics_permission() {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function statistics_node_view($node, $build_mode) {
+function statistics__node_view($node, $build_mode) {
   if ($build_mode != 'rss') {
     $links = array();
     if (user_access('view post access counter')) {
@@ -122,9 +122,9 @@ function statistics_node_view($node, $build_mode) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function statistics_menu() {
+function statistics__menu() {
   $items['admin/reports/hits'] = array(
     'title' => 'Recent hits',
     'description' => 'View pages that have recently been visited.',
@@ -187,9 +187,9 @@ function statistics_menu() {
 }
 
 /**
- * Implement hook_user_cancel().
+ * Implement hook__user_cancel().
  */
-function statistics_user_cancel($edit, $account, $method) {
+function statistics__user_cancel($edit, $account, $method) {
   switch ($method) {
     case 'user_cancel_reassign':
       db_update('accesslog')
@@ -207,9 +207,9 @@ function statistics_user_cancel($edit, $account, $method) {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  */
-function statistics_cron() {
+function statistics__cron() {
   $statistics_timestamp = variable_get('statistics_day_timestamp', '');
 
   if ((REQUEST_TIME - $statistics_timestamp) >= 86400) {
@@ -284,9 +284,9 @@ function statistics_get($nid) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function statistics_block_list() {
+function statistics__block_list() {
   if (variable_get('statistics_count_content_views', 0)) {
     $blocks['popular']['info'] = t('Popular content');
     // Too dynamic to cache.
@@ -296,9 +296,9 @@ function statistics_block_list() {
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function statistics_block_configure($delta = '') {
+function statistics__block_configure($delta = '') {
   // Popular content block settings
   $numbers = array('0' => t('Disabled')) + drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40));
   $form['statistics_block_top_day_num'] = array('#type' => 'select', '#title' => t("Number of day's top views to display"), '#default_value' => variable_get('statistics_block_top_day_num', 0), '#options' => $numbers, '#description' => t('How many content items to display in "day" list.'));
@@ -308,18 +308,18 @@ function statistics_block_configure($delta = '') {
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function statistics_block_save($delta = '', $edit = array()) {
+function statistics__block_save($delta = '', $edit = array()) {
   variable_set('statistics_block_top_day_num', $edit['statistics_block_top_day_num']);
   variable_set('statistics_block_top_all_num', $edit['statistics_block_top_all_num']);
   variable_set('statistics_block_top_last_num', $edit['statistics_block_top_last_num']);
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  */
-function statistics_block_view($delta = '') {
+function statistics__block_view($delta = '') {
   if (user_access('access content')) {
     $content = array();
 
@@ -364,9 +364,9 @@ function _statistics_format_item($title, $path) {
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function statistics_node_delete($node) {
+function statistics__node_delete($node) {
   // clean up statistics table when node is deleted
   db_delete('node_counter')
     ->condition('nid', $node->nid)
@@ -374,9 +374,9 @@ function statistics_node_delete($node) {
 }
 
 /**
- * Implement hook_ranking().
+ * Implement hook__ranking().
  */
-function statistics_ranking() {
+function statistics__ranking() {
   if (variable_get('statistics_count_content_views', 0)) {
     return array(
       'views' => array(
@@ -391,8 +391,8 @@ function statistics_ranking() {
 }
 
 /**
- * Implement hook_update_index().
+ * Implement hook__update_index().
  */
-function statistics_update_index() {
+function statistics__update_index() {
   variable_set('node_cron_views_scale', 1.0 / max(1, db_query('SELECT MAX(totalcount) FROM {node_counter}')->fetchField()));
 }
diff --git a/modules/syslog/syslog.module b/modules/syslog/syslog.module
index 1faa25f..46a1cf0 100644
--- a/modules/syslog/syslog.module
+++ b/modules/syslog/syslog.module
@@ -14,9 +14,9 @@ else {
 }
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function syslog_help($path, $arg) {
+function syslog__help($path, $arg) {
   switch ($path) {
     case 'admin/help#syslog':
       $output = '<p>' . t("The syslog module enables Drupal to send messages to the operating system's logging facility.") . '</p>';
@@ -27,7 +27,7 @@ function syslog_help($path, $arg) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function syslog_form_system_logging_settings_alter(&$form, &$form_state) {
   $form['syslog_facility'] = array(
@@ -61,9 +61,9 @@ function syslog_facility_list() {
 }
 
 /**
- * Implement hook_watchdog().
+ * Implement hook__watchdog().
  */
-function syslog_watchdog(array $log_entry) {
+function syslog__watchdog(array $log_entry) {
   $log_init = &drupal_static(__FUNCTION__, FALSE);
 
   if (!$log_init) {
@@ -74,7 +74,7 @@ function syslog_watchdog(array $log_entry) {
   syslog($log_entry['severity'], theme('syslog_format', $log_entry));
 }
 
-function syslog_theme() {
+function syslog__theme() {
   return array(
     'syslog_format' => array(
       'arguments' => array('entry' => NULL),
diff --git a/modules/system/system.api.php b/modules/system/system.api.php
index 3c9f042..31fba80 100644
--- a/modules/system/system.api.php
+++ b/modules/system/system.api.php
@@ -15,7 +15,7 @@
  * Perform periodic actions.
  *
  * Modules that require to schedule some commands to be executed at regular
- * intervals can implement hook_cron(). The engine will then call the hook
+ * intervals can implement hook__cron(). The engine will then call the hook
  * at the appropriate intervals defined by the administrator. This interface
  * is particularly handy to implement timers or to automate certain tasks.
  * Database maintenance, recalculation of settings or parameters, and
@@ -23,7 +23,7 @@
  *
  * This hook will only be called if cron.php is run (e.g. by crontab).
  */
-function hook_cron() {
+function hook__cron() {
   $result = db_query('SELECT * FROM {site} WHERE checked = 0 OR checked + refresh < :time', array(':time' => REQUEST_TIME));
 
   foreach ($result as $site) {
@@ -58,7 +58,7 @@ function hook_cron() {
  * @return
  *   An array of join statements, where statements, distinct decision.
  */
-function hook_db_rewrite_sql($query, $primary_table, $primary_field, $args) {
+function hook__db_rewrite_sql($query, $primary_table, $primary_field, $args) {
   switch ($primary_field) {
     case 'nid':
       // this query deals with node objects
@@ -84,13 +84,13 @@ function hook_db_rewrite_sql($query, $primary_table, $primary_field, $args) {
  *
  * This hook allows modules to declare their own form element types and to
  * specify their default values. The values returned by this hook will be
- * merged with the elements returned by hook_form() implementations and so
+ * merged with the elements returned by hook__form() implementations and so
  * can return defaults for any Form APIs keys in addition to those explicitly
  * mentioned below.
  *
  * Each of the form element types defined by this hook is assumed to have
  * a matching theme function, e.g. theme_elementtype(), which should be
- * registered with hook_theme() as normal.
+ * registered with hook__theme() as normal.
  *
  * Form more information about custom element types see the explanation at
  * http://drupal.org/node/169815.
@@ -110,7 +110,7 @@ function hook_db_rewrite_sql($query, $primary_table, $primary_field, $args) {
  *  - "#post_render": array of callback functions taking $element and $form_state.
  *  - "#submit": array of callback functions taking $form and $form_state.
  */
-function hook_elements() {
+function hook__elements() {
   $type['filter_format'] = array('#input' => TRUE);
   return $type;
 }
@@ -122,11 +122,11 @@ function hook_elements() {
  * defined by a module.
  *
  * @param &$type
- *   All element type defaults as collected by hook_elements().
+ *   All element type defaults as collected by hook__elements().
  *
- * @see hook_elements()
+ * @see hook__elements()
  */
-function hook_element_info_alter(&$type) {
+function hook__element_info_alter(&$type) {
   // Decrease the default size of textfields.
   if (isset($type['textfield']['#size'])) {
     $type['textfield']['#size'] = 40;
@@ -153,7 +153,7 @@ function hook_element_info_alter(&$type) {
  *   be output in this case, because PHP will then throw a "headers cannot be
  *   modified" error when attempting the redirection.
  */
-function hook_exit($destination = NULL) {
+function hook__exit($destination = NULL) {
   db_update('counter')
     ->expression('hits', 'hits + 1')
     ->condition('type', 1)
@@ -170,7 +170,7 @@ function hook_exit($destination = NULL) {
  * @see drupal_get_js()
  * @see drupal_js_defaults()
  */
-function hook_js_alter(&$javascript) {
+function hook__js_alter(&$javascript) {
   // Swap out jQuery to use an updated version of the library.
   $javascript['misc/jquery.js']['data'] = drupal_get_path('module', 'jquery_update') . '/jquery.js';
 }
@@ -206,11 +206,11 @@ function hook_js_alter(&$javascript) {
  * @return
  *   An array defining libraries associated with a module.
  *
- * @see system_library()
+ * @see system__library()
  * @see drupal_add_library()
  * @see drupal_get_library()
  */
-function hook_library() {
+function hook__library() {
   // Library One.
   $libraries['library-1'] = array(
     'title' => 'Library One',
@@ -264,9 +264,9 @@ function hook_library() {
  * @param $module
  *   The name of the module that registered the libraries.
  *
- * @see hook_library()
+ * @see hook__library()
  */
-function hook_library_alter(&$libraries, $module) {
+function hook__library_alter(&$libraries, $module) {
   // Update Farbtastic to version 2.0.
   if ($module == 'system' && isset($libraries['farbtastic'])) {
     // Verify existing version is older than the one we are updating to.
@@ -288,7 +288,7 @@ function hook_library_alter(&$libraries, $module) {
  * @see drupal_add_css()
  * @see drupal_get_css()
  */
-function hook_css_alter(&$css) {
+function hook__css_alter(&$css) {
   // Remove defaults.css file.
   unset($css[drupal_get_path('module', 'system') . '/defaults.css']);
 }
@@ -298,7 +298,7 @@ function hook_css_alter(&$css) {
  *
  * Use this hook when you want to add, remove, or alter elements at the page
  * level. If you are making changes to entities such as forms, menus, or user
- * profiles, use those objects' native alter hooks instead (hook_form_alter(),
+ * profiles, use those objects' native alter hooks instead (hook__form_alter(),
  * for example).
  *
  * The $page array contains top level elements for each block region:
@@ -339,7 +339,7 @@ function hook_css_alter(&$css) {
  *
  * @see drupal_render_page()
  */
-function hook_page_alter($page) {
+function hook__page_alter($page) {
   if (menu_get_object('node', 1)) {
     // We are on a node detail page. Append a standard disclaimer to the
     // content region.
@@ -356,8 +356,8 @@ function hook_page_alter($page) {
  * One popular use of this hook is to add form elements to the node form. When
  * altering a node form, the node object retrieved at from $form['#node'].
  *
- * Note that instead of hook_form_alter(), which is called for all forms, you
- * can also use hook_form_FORM_ID_alter() to alter a specific form.
+ * Note that instead of hook__form_alter(), which is called for all forms, you
+ * can also use hook__form_FORM_ID_alter() to alter a specific form.
  *
  * @param $form
  *   Nested array of form elements that comprise the form.
@@ -367,7 +367,7 @@ function hook_page_alter($page) {
  *   String representing the name of the form itself. Typically this is the
  *   name of the function that generated the form.
  */
-function hook_form_alter(&$form, &$form_state, $form_id) {
+function hook__form_alter(&$form, &$form_state, $form_id) {
   if (isset($form['type']) && $form['type']['#value'] . '_node_settings' == $form_id) {
     $form['workflow']['upload_' . $form['type']['#value']] = array(
       '#type' => 'radios',
@@ -379,15 +379,15 @@ function hook_form_alter(&$form, &$form_state, $form_id) {
 }
 
 /**
- * Provide a form-specific alteration instead of the global hook_form_alter().
+ * Provide a form-specific alteration instead of the global hook__form_alter().
  *
- * Modules can implement hook_form_FORM_ID_alter() to modify a specific form,
- * rather than implementing hook_form_alter() and checking the form ID, or
+ * Modules can implement hook__form_FORM_ID_alter() to modify a specific form,
+ * rather than implementing hook__form_alter() and checking the form ID, or
  * using long switch statements to alter multiple forms.
  *
- * Note that this hook fires before hook_form_alter(). Therefore all
- * implementations of hook_form_FORM_ID_alter() will run before all implementations
- * of hook_form_alter(), regardless of the module order.
+ * Note that this hook fires before hook__form_alter(). Therefore all
+ * implementations of hook__form_FORM_ID_alter() will run before all implementations
+ * of hook__form_alter(), regardless of the module order.
  *
  * @param $form
  *   Nested array of form elements that comprise the form.
@@ -396,7 +396,7 @@ function hook_form_alter(&$form, &$form_state, $form_id) {
  *
  * @see drupal_prepare_form().
  */
-function hook_form_FORM_ID_alter(&$form, &$form_state) {
+function hook__form_FORM_ID_alter(&$form, &$form_state) {
   // Modification for the form with the given form ID goes here. For example, if
   // FORM_ID is "user_register" this code would run only on the user
   // registration form.
@@ -418,9 +418,9 @@ function hook_form_FORM_ID_alter(&$form, &$form_state) {
  *
  * The callback arguments will be passed as parameters to the function. Callers
  * of drupal_get_form() are also able to pass in parameters. These will be
- * appended after those specified by hook_forms().
+ * appended after those specified by hook__forms().
  *
- * See node_forms() for an actual example of how multiple forms share a common
+ * See node__forms() for an actual example of how multiple forms share a common
  * building function.
  *
  * @param $form_id
@@ -430,7 +430,7 @@ function hook_form_FORM_ID_alter(&$form, &$form_state) {
  * @return
  *   An array keyed by form_id with callbacks and optional, callback arguments.
  */
-function hook_forms($form_id, $args) {
+function hook__forms($form_id, $args) {
   $forms['mymodule_first_form'] = array(
     'callback' => 'mymodule_form_builder',
     'callback arguments' => array('some parameter'),
@@ -452,7 +452,7 @@ function hook_forms($form_id, $args) {
  * is called before modules or most include files are loaded into memory.
  * It happens while Drupal is still in bootstrap mode.
  */
-function hook_boot() {
+function hook__boot() {
   // we need user_access() in the shutdown function. make sure it gets loaded
   drupal_load('module', 'user');
   register_shutdown_function('devel_shutdown');
@@ -469,7 +469,7 @@ function hook_boot() {
  * that should be present on every page. This hook is not run on cached
  * pages - though CSS or JS added this way will be present on a cached page.
  */
-function hook_init() {
+function hook__init() {
   drupal_add_css(drupal_get_path('module', 'book') . '/book.css');
 }
 
@@ -496,9 +496,9 @@ function hook_init() {
  *     - 'available': A Boolean value to indicate that the toolkit is operating
  *       properly, e.g. all required libraries exist.
  *
- * @see system_image_toolkits()
+ * @see system__image_toolkits()
  */
-function hook_image_toolkits() {
+function hook__image_toolkits() {
   return array(
     'working' => array(
       'title' => t('A toolkit that works.'),
@@ -539,7 +539,7 @@ function hook_image_toolkits() {
  *     Associative array containing mail headers, such as From, Sender,
  *     MIME-Version, Content-Type, etc.
  */
-function hook_mail_alter(&$message) {
+function hook__mail_alter(&$message) {
   if ($message['mail_id'] == 'my_message') {
     $message['body'] .= "\n\n--\nMail sent out from " . variable_get('sitename', t('Drupal'));
   }
@@ -558,7 +558,7 @@ function hook_mail_alter(&$message) {
  *   Full information about the module or theme, including $file->name, and
  *   $file->filename
  */
-function hook_system_info_alter(&$info, $file) {
+function hook__system_info_alter(&$info, $file) {
   // Only fill this in if the .info file does not define a 'datestamp'.
   if (empty($info['datestamp'])) {
     $info['datestamp'] = filemtime($file->filename);
@@ -585,7 +585,7 @@ function hook_system_info_alter(&$info, $file) {
  *   translation. The permission descriptions (values of the array)
  *   should be wrapped in the t() function so they can be translated.
  */
-function hook_permission() {
+function hook__permission() {
   return array(
     'administer my module' =>  array(
       'title' => t('Administer my module'),
@@ -678,7 +678,7 @@ function hook_permission() {
  * @return
  *   A keyed array of theme hooks.
  */
-function hook_theme($existing, $type, $theme, $path) {
+function hook__theme($existing, $type, $theme, $path) {
   return array(
     'forum_display' => array(
       'arguments' => array('forums' => NULL, 'topics' => NULL, 'parents' => NULL, 'tid' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL),
@@ -699,7 +699,7 @@ function hook_theme($existing, $type, $theme, $path) {
 }
 
 /**
- * Alter the theme registry information returned from hook_theme().
+ * Alter the theme registry information returned from hook__theme().
  *
  * The theme registry stores information about all available theme hooks,
  * including which callback functions those hooks will call when triggered,
@@ -709,7 +709,7 @@ function hook_theme($existing, $type, $theme, $path) {
  * Changes here will not be visible until the next cache clear.
  *
  * The $theme_registry array is keyed by theme hook name, and contains the
- * information returned from hook_theme(), as well as additional properties
+ * information returned from hook__theme(), as well as additional properties
  * added by _theme_process_registry().
  *
  * For example:
@@ -735,10 +735,10 @@ function hook_theme($existing, $type, $theme, $path) {
  *
  * @param $theme_registry
  *   The entire cache of theme registry information, post-processing.
- * @see hook_theme()
+ * @see hook__theme()
  * @see _theme_process_registry()
  */
-function hook_theme_registry_alter(&$theme_registry) {
+function hook__theme_registry_alter(&$theme_registry) {
   // Kill the next/previous forum topic navigation links.
   foreach ($theme_registry['forum_topic_navigation']['preprocess functions'] as $key => $value) {
     if ($value = 'template_preprocess_forum_topic_navigation') {
@@ -780,7 +780,7 @@ function hook_theme_registry_alter(&$theme_registry) {
  *     purposes.
  *   Both forms are shown in the example.
  */
-function hook_xmlrpc() {
+function hook__xmlrpc() {
   return array(
     'drupal.login' => 'drupal_login',
     array(
@@ -818,7 +818,7 @@ function hook_xmlrpc() {
  *   - link: an optional link provided by the module that called the watchdog() function.
  *   - message: The text of the message to be logged.
  */
-function hook_watchdog(array $log_entry) {
+function hook__watchdog(array $log_entry) {
   global $base_url, $language;
 
   $severity_list = array(
@@ -900,7 +900,7 @@ function hook_watchdog(array $log_entry) {
  * @param $params
  *   An array of parameters supplied by the caller of drupal_mail().
  */
-function hook_mail($key, &$message, $params) {
+function hook__mail($key, &$message, $params) {
   $account = $params['account'];
   $context = $params['context'];
   $variables = array(
@@ -950,24 +950,24 @@ function hook_mail($key, &$message, $params) {
  * @return
  *   An array of cache table names.
  */
-function hook_flush_caches() {
+function hook__flush_caches() {
   return array('cache_example');
 }
 
 /**
  * Perform necessary actions after modules are installed.
  *
- * This function differs from hook_install() as it gives all other
+ * This function differs from hook__install() as it gives all other
  * modules a chance to perform actions when a module is installed,
- * whereas hook_install() will only be called on the module actually
+ * whereas hook__install() will only be called on the module actually
  * being installed.
  *
- * @see hook_install()
+ * @see hook__install()
  *
  * @param $modules
  *   An array of the installed modules.
  */
-function hook_modules_installed($modules) {
+function hook__modules_installed($modules) {
   if (in_array('lousy_module', $modules)) {
     variable_set('lousy_module_conflicting_variable', FALSE);
   }
@@ -976,17 +976,17 @@ function hook_modules_installed($modules) {
 /**
  * Perform necessary actions after modules are enabled.
  *
- * This function differs from hook_enable() as it gives all other
+ * This function differs from hook__enable() as it gives all other
  * modules a chance to perform actions when modules are enabled,
- * whereas hook_enable() will only be called on the module actually
+ * whereas hook__enable() will only be called on the module actually
  * being enabled.
  *
- * @see hook_enable()
+ * @see hook__enable()
  *
  * @param $modules
  *   An array of the enabled modules.
  */
-function hook_modules_enabled($modules) {
+function hook__modules_enabled($modules) {
   if (in_array('lousy_module', $modules)) {
     drupal_set_message(t('mymodule is not compatible with lousy_module'), 'error');
     mymodule_disable_functionality();
@@ -996,17 +996,17 @@ function hook_modules_enabled($modules) {
 /**
  * Perform necessary actions after modules are disabled.
  *
- * This function differs from hook_disable() as it gives all other
+ * This function differs from hook__disable() as it gives all other
  * modules a chance to perform actions when modules are disabled,
- * whereas hook_disable() will only be called on the module actually
+ * whereas hook__disable() will only be called on the module actually
  * being disabled.
  *
- * @see hook_disable()
+ * @see hook__disable()
  *
  * @param $modules
  *   An array of the disabled modules.
  */
-function hook_modules_disabled($modules) {
+function hook__modules_disabled($modules) {
   if (in_array('lousy_module', $modules)) {
     mymodule_enable_functionality();
   }
@@ -1015,20 +1015,20 @@ function hook_modules_disabled($modules) {
 /**
  * Perform necessary actions after modules are uninstalled.
  *
- * This function differs from hook_uninstall() as it gives all other
+ * This function differs from hook__uninstall() as it gives all other
  * modules a chance to perform actions when a module is uninstalled,
- * whereas hook_uninstall() will only be called on the module actually
+ * whereas hook__uninstall() will only be called on the module actually
  * being uninstalled.
  *
  * It is recommended that you implement this module if your module
  * stores data that may have been set by other modules.
  *
- * @see hook_uninstall()
+ * @see hook__uninstall()
  *
  * @param $modules
  *   The name of the uninstalled module.
  */
-function hook_modules_uninstalled($modules) {
+function hook__modules_uninstalled($modules) {
   foreach ($modules as $module) {
     db_delete('mymodule_table')
       ->condition('module', $module)
@@ -1115,10 +1115,10 @@ function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  *   - 'description' A string with a short description of what the wrapper does.
  *
  * @see file_get_stream_wrappers()
- * @see hook_stream_wrappers_alter()
- * @see system_stream_wrappers()
+ * @see hook__stream_wrappers_alter()
+ * @see system__stream_wrappers()
  */
-function hook_stream_wrappers() {
+function hook__stream_wrappers() {
   return array(
     'public' => array(
       'name' => t('Public files'),
@@ -1142,9 +1142,9 @@ function hook_stream_wrappers() {
  * Alters the list of PHP stream wrapper implementations.
  *
  * @see file_get_stream_wrappers()
- * @see hook_stream_wrappers()
+ * @see hook__stream_wrappers()
  */
-function hook_stream_wrappers_alter(&$wrappers) {
+function hook__stream_wrappers_alter(&$wrappers) {
   // Change the name of private files to reflect the performance.
   $wrappers['private']['name'] = t('Slow files');
 }
@@ -1159,9 +1159,9 @@ function hook_stream_wrappers_alter(&$wrappers) {
  *   An array of file objects, indexed by fid.
  *
  * @see file_load_multiple()
- * @see upload_file_load()
+ * @see upload__file_load()
  */
-function hook_file_load($files) {
+function hook__file_load($files) {
   // Add the upload specific data into the file object.
   $result = db_query('SELECT * FROM {upload} u WHERE u.fid IN (:fids)', array(':fids' => array_keys($files)))->fetchAll(PDO::FETCH_ASSOC);
   foreach ($result as $record) {
@@ -1185,7 +1185,7 @@ function hook_file_load($files) {
  *
  * @see file_validate()
  */
-function hook_file_validate(&$file) {
+function hook__file_validate(&$file) {
   $errors = array();
 
   if (empty($file->filename)) {
@@ -1210,7 +1210,7 @@ function hook_file_validate(&$file) {
  *
  * @see file_save()
  */
-function hook_file_insert(&$file) {
+function hook__file_insert(&$file) {
 
 }
 
@@ -1224,7 +1224,7 @@ function hook_file_insert(&$file) {
  *
  * @see file_save()
  */
-function hook_file_update(&$file) {
+function hook__file_update(&$file) {
 
 }
 
@@ -1238,7 +1238,7 @@ function hook_file_update(&$file) {
  *
  * @see file_copy()
  */
-function hook_file_copy($file, $source) {
+function hook__file_copy($file, $source) {
 
 }
 
@@ -1252,7 +1252,7 @@ function hook_file_copy($file, $source) {
  *
  * @see file_move()
  */
-function hook_file_move($file, $source) {
+function hook__file_move($file, $source) {
 
 }
 
@@ -1270,9 +1270,9 @@ function hook_file_move($file, $source) {
  *   key and the value the number of times the file is used.
  *
  * @see file_delete()
- * @see upload_file_references()
+ * @see upload__file_references()
  */
-function hook_file_references($file) {
+function hook__file_references($file) {
   // If upload.module is still using a file, do not let other modules delete it.
   $file_used = (bool) db_query_range('SELECT 1 FROM {upload} WHERE fid = :fid', array(':fid' => $file->fid), 0, 1)->fetchField();
   if ($file_used) {
@@ -1288,9 +1288,9 @@ function hook_file_references($file) {
  *   The file that has just been deleted.
  *
  * @see file_delete()
- * @see upload_file_delete()
+ * @see upload__file_delete()
  */
-function hook_file_delete($file) {
+function hook__file_delete($file) {
   // Delete all information associated with the file.
   db_delete('upload')->condition('fid', $file->fid)->execute();
 }
@@ -1311,9 +1311,9 @@ function hook_file_delete($file) {
  *   NULL.
  *
  * @see file_download()
- * @see upload_file_download()
+ * @see upload__file_download()
  */
-function hook_file_download($filepath) {
+function hook__file_download($filepath) {
   // Check if the file is controlled by the current module.
   $filepath = file_create_path($filepath);
   $result = db_query("SELECT f.* FROM {files} f INNER JOIN {upload} u ON f.fid = u.fid WHERE filepath = :filepath", array('filepath' => $filepath));
@@ -1381,7 +1381,7 @@ function hook_file_download($filepath) {
  *         - REQUIREMENT_WARNING: The requirement failed with a warning.
  *         - REQUIREMENT_ERROR:   The requirement failed with an error.
  */
-function hook_requirements($phase) {
+function hook__requirements($phase) {
   $requirements = array();
   // Ensure translations don't break at install time
   $t = get_t();
@@ -1433,9 +1433,9 @@ function hook_requirements($phase) {
  *
  * A Drupal schema definition is an array structure representing one or
  * more tables and their related keys and indexes. A schema is defined by
- * hook_schema() which must live in your module's .install file.
+ * hook__schema() which must live in your module's .install file.
  *
- * By implementing hook_schema() and specifying the tables your module
+ * By implementing hook__schema() and specifying the tables your module
  * declares, you can easily create and drop these tables on all
  * supported database engines. You don't have to deal with the
  * different SQL dialects for table creation and alteration of the
@@ -1449,7 +1449,7 @@ function hook_requirements($phase) {
  * array, the key is a table name and the value is a table structure
  * definition.
  */
-function hook_schema() {
+function hook__schema() {
   $schema['node'] = array(
     // example (partial) specification for table "node"
     'description' => 'The base table for nodes.',
@@ -1496,15 +1496,15 @@ function hook_schema() {
  *
  * When a module modifies the database structure of another module (by
  * changing, adding or removing fields, keys or indexes), it should
- * implement hook_schema_alter() to update the default $schema to take
+ * implement hook__schema_alter() to update the default $schema to take
  * it's changes into account.
  *
- * See hook_schema() for details on the schema definition structure.
+ * See hook__schema() for details on the schema definition structure.
  *
  * @param $schema
  *   Nested array describing the schemas for all modules.
  */
-function hook_schema_alter(&$schema) {
+function hook__schema_alter(&$schema) {
   // Add field to existing schema.
   $schema['users']['fields']['timezone_id'] = array(
     'type' => 'int',
@@ -1520,14 +1520,14 @@ function hook_schema_alter(&$schema) {
  * Structured (aka dynamic) queries that have tags associated may be altered by any module
  * before the query is executed.
  *
- * @see hook_query_TAG_alter()
+ * @see hook__query_TAG_alter()
  * @see node_query_node_access_alter()
  * @see QueryAlterableInterface
  * @see SelectQueryInterface
  * @param $query
  *   A Query object describing the composite parts of a SQL query.
  */
-function hook_query_alter(QueryAlterableInterface $query) {
+function hook__query_alter(QueryAlterableInterface $query) {
   if ($query->hasTag('micro_limit')) {
     $query->range(0, 2);
   }
@@ -1536,7 +1536,7 @@ function hook_query_alter(QueryAlterableInterface $query) {
 /**
  * Perform alterations to a structured query for a given tag.
  *
- * @see hook_query_alter()
+ * @see hook__query_alter()
  * @see node_query_node_access_alter()
  * @see QueryAlterableInterface
  * @see SelectQueryInterface
@@ -1544,7 +1544,7 @@ function hook_query_alter(QueryAlterableInterface $query) {
  * @param $query
  *   An Query object describing the composite parts of a SQL query.
  */
-function hook_query_TAG_alter(QueryAlterableInterface $query) {
+function hook__query_TAG_alter(QueryAlterableInterface $query) {
   // Skip the extra expensive alterations if site has no node access control modules.
   if (!node_access_view_all_nodes()) {
     // Prevent duplicates records.
@@ -1582,7 +1582,7 @@ function hook_query_TAG_alter(QueryAlterableInterface $query) {
  *
  * The hook will be called the first time a module is installed, and the
  * module's schema version will be set to the module's greatest numbered update
- * hook. Because of this, anytime a hook_update_N() is added to the module, this
+ * hook. Because of this, anytime a hook__update_N() is added to the module, this
  * function needs to be updated to reflect the current version of the database
  * schema.
  *
@@ -1596,17 +1596,17 @@ function hook_query_TAG_alter(QueryAlterableInterface $query) {
  * message, or calling a module function necessary for initial setup, etc.
  *
  * Please be sure that anything added or modified in this function that can
- * be removed during uninstall should be removed with hook_uninstall().
+ * be removed during uninstall should be removed with hook__uninstall().
  *
- * @see hook_uninstall()
+ * @see hook__uninstall()
  */
-function hook_install() {
+function hook__install() {
   drupal_install_schema('upload');
 }
 
 /**
  * Perform a single update. For each patch which requires a database change add
- * a new hook_update_N() which will be called by update.php.
+ * a new hook__update_N() which will be called by update.php.
  *
  * The database updates are numbered sequentially according to the version of Drupal you are compatible with.
  *
@@ -1635,7 +1635,7 @@ function hook_install() {
  *     6.x-1.x branch only.
  *
  * A good rule of thumb is to remove updates older than two major releases of
- * Drupal. See hook_update_last_removed() to notify Drupal about the removals.
+ * Drupal. See hook__update_last_removed() to notify Drupal about the removals.
  *
  * Never renumber update functions.
  *
@@ -1666,7 +1666,7 @@ function hook_install() {
  *   have not yet been run. Multipass update functions will also want to pass
  *   back the $ret['#finished'] variable to inform the batch API of progress.
  */
-function hook_update_N(&$sandbox = NULL) {
+function hook__update_N(&$sandbox = NULL) {
   // For most updates, the following is sufficient.
   $ret = array();
   db_add_field($ret, 'mytable1', 'newcol', array('type' => 'int', 'not null' => TRUE, 'description' => 'My new integer column.'));
@@ -1704,7 +1704,7 @@ function hook_update_N(&$sandbox = NULL) {
 }
 
 /**
- * Return a number which is no longer available as hook_update_N().
+ * Return a number which is no longer available as hook__update_N().
  *
  * If you remove some update functions from your mymodule.install file, you
  * should notify Drupal of those missing functions. This way, Drupal can
@@ -1714,12 +1714,12 @@ function hook_update_N(&$sandbox = NULL) {
  * the same directory as mymodule.module.
  *
  * @return
- *   An integer, corresponding to hook_update_N() which has been removed from
+ *   An integer, corresponding to hook__update_N() which has been removed from
  *   mymodule.install.
  *
- * @see hook_update_N()
+ * @see hook__update_N()
  */
-function hook_update_last_removed() {
+function hook__update_last_removed() {
   // We've removed the 5.x-1.x version of mymodule, including database updates.
   // The next update function is mymodule__update_5200().
   return 5103;
@@ -1737,7 +1737,7 @@ function hook_update_last_removed() {
  *
  * The uninstall hook will fire when the module gets uninstalled.
  */
-function hook_uninstall() {
+function hook__uninstall() {
   drupal_uninstall_schema('upload');
   variable_del('upload_file_types');
 }
@@ -1747,7 +1747,7 @@ function hook_uninstall() {
  *
  * The hook is called everytime module is enabled.
  */
-function hook_enable() {
+function hook__enable() {
   mymodule_cache_rebuild();
 }
 
@@ -1756,7 +1756,7 @@ function hook_enable() {
  *
  * The hook is called everytime module is disabled.
  */
-function hook_disable() {
+function hook__disable() {
   mymodule_cache_rebuild();
 }
 
@@ -1798,7 +1798,7 @@ function hook_disable() {
  * @see drupal_system_listing()
  * @see simpletest_test_get_all()
  */
-function hook_registry_files_alter(&$files, $module_cache) {
+function hook__registry_files_alter(&$files, $module_cache) {
   foreach ($modules as $module) {
     // Only add test files for disabled modules, as enabled modules should
     // already include any test files they provide.
@@ -1917,7 +1917,7 @@ function hook_registry_files_alter(&$files, $module_cache) {
  * @see install_state_defaults()
  * @see batch_set()
  */
-function hook_profile_tasks() {
+function hook__profile_tasks() {
   // Here, we define a variable to allow tasks to indicate that a particular,
   // processor-intensive batch process needs to be triggered later on in the
   // installation.
diff --git a/modules/system/system.install b/modules/system/system.install
index b5918a3..263449a 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -14,7 +14,7 @@
  * @return
  *   An array of system requirements.
  */
-function system_requirements($phase) {
+function system__requirements($phase) {
   global $base_url;
   $requirements = array();
   // Ensure translations don't break at install time
@@ -308,9 +308,9 @@ function system_requirements($phase) {
 }
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function system_install() {
+function system__install() {
   // Create tables.
   $modules = array('system', 'filter', 'user', 'node');
   foreach ($modules as $module) {
@@ -479,9 +479,9 @@ function system_install() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function system_schema() {
+function system__schema() {
   // NOTE: {variable} needs to be created before all other tables, as
   // some database drivers, e.g. Oracle and DB2, will require variable_get()
   // and variable_set() for overcoming some database specific limitations.
@@ -1346,7 +1346,7 @@ function system_schema() {
         'default' => 0,
       ),
       'schema_version' => array(
-        'description' => "The module's database schema version number. -1 if the module is not installed (its tables do not exist); 0 or the largest N of the module's hook_update_N() function that has either been run or existed when the module was first installed.",
+        'description' => "The module's database schema version number. -1 if the module is not installed (its tables do not exist); 0 or the largest N of the module's hook__update_N() function that has either been run or existed when the module was first installed.",
         'type' => 'int',
         'not null' => TRUE,
         'default' => -1,
@@ -1416,7 +1416,7 @@ function system_schema() {
 
 // Updates for core.
 
-function system_update_last_removed() {
+function system__update_last_removed() {
   return 6049;
 }
 
diff --git a/modules/system/system.module b/modules/system/system.module
index bde67f4..7a105af 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -83,9 +83,9 @@ define('REGIONS_ALL', 'all');
 
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function system_help($path, $arg) {
+function system__help($path, $arg) {
   global $base_url;
 
   switch ($path) {
@@ -146,9 +146,9 @@ function system_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function system_theme() {
+function system__theme() {
   return array_merge(drupal_common_theme(), array(
     'system_themes_form' => array(
       'arguments' => array('form' => NULL),
@@ -200,9 +200,9 @@ function system_theme() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function system_permission() {
+function system__permission() {
   return array(
     'administer site configuration' => array(
       'title' => t('Administer site configuration'),
@@ -255,9 +255,9 @@ function system_rdf_namespaces() {
 }
 
 /**
- * Implement hook_elements().
+ * Implement hook__elements().
  */
-function system_elements() {
+function system__elements() {
   // Top level form
   $type['form'] = array(
     '#method' => 'post',
@@ -467,9 +467,9 @@ function system_elements() {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function system_menu() {
+function system__menu() {
   $items['system/files'] = array(
     'title' => 'File download',
     'page callback' => 'file_download',
@@ -807,9 +807,9 @@ function system_menu() {
 }
 
 /**
- * Implementation of hook_library().
+ * Implementation of hook__library().
  */
-function system_library() {
+function system__library() {
   // jQuery.
   $libraries['jquery'] = array(
     'title' => 'jQuery',
@@ -1160,9 +1160,9 @@ function system_library() {
 }
 
 /**
- * Implement hook_stream_wrappers().
+ * Implement hook__stream_wrappers().
  */
-function system_stream_wrappers() {
+function system__stream_wrappers() {
   return array(
     'public' => array(
       'name' => t('Public files'),
@@ -1331,9 +1331,9 @@ function _system_filetransfer_backend_form_common() {
 }
 
 /**
- * Implement hook_init().
+ * Implement hook__init().
  */
-function system_init() {
+function system__init() {
   // Use the administrative theme if the user is looking at a page in the admin/* path.
   if (arg(0) == 'admin' || (variable_get('node_admin_theme', '0') && arg(0) == 'node' && (arg(1) == 'add' || arg(2) == 'edit'))) {
     global $custom_theme;
@@ -1387,9 +1387,9 @@ function system_preprocess_page(&$variables) {
 }
 
 /**
- * Implement hook_user_form().
+ * Implement hook__user_form().
  */
-function system_user_form(&$edit, $account, $category) {
+function system__user_form(&$edit, $account, $category) {
   if ($category == 'account') {
     if (variable_get('configurable_timezones', 1)) {
       system_user_timezone($edit, $form);
@@ -1399,9 +1399,9 @@ function system_user_form(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_user_register().
+ * Implement hook__user_register().
  */
-function system_user_register(&$edit, $account, $category) {
+function system__user_register(&$edit, $account, $category) {
   if (variable_get('configurable_timezones', 1)) {
     $form = array();
     if (variable_get('user_default_timezone', DRUPAL_USER_TIMEZONE_DEFAULT) == DRUPAL_USER_TIMEZONE_SELECT) {
@@ -1418,9 +1418,9 @@ function system_user_register(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_user_login().
+ * Implement hook__user_login().
  */
-function system_user_login(&$edit, $account) {
+function system__user_login(&$edit, $account) {
   // If the user has a NULL time zone, notify them to set a time zone.
   if (!$account->timezone && variable_get('configurable_timezones', 1) && variable_get('empty_timezone_message', 0)) {
     drupal_set_message(t('Please configure your <a href="@user-edit">account time zone setting</a>.', array('@user-edit' => url("user/$account->uid/edit", array('query' => drupal_get_destination(), 'fragment' => 'edit-timezone')))));
@@ -1453,9 +1453,9 @@ function system_user_timezone(&$edit, &$form) {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function system_block_list() {
+function system__block_list() {
   $blocks['main'] = array(
     'info' => t('Main page content'),
      // Cached elsewhere.
@@ -1481,9 +1481,9 @@ function system_block_list() {
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function system_block_configure($delta = '') {
+function system__block_configure($delta = '') {
   if ($delta == 'powered-by') {
     $image_path = 'misc/' . variable_get('drupal_badge_color', 'powered-blue') . '-' . variable_get('drupal_badge_size', '80x15') . '.png';
     drupal_add_js(drupal_get_path('module', 'system') . '/system.js');
@@ -1510,9 +1510,9 @@ function system_block_configure($delta = '') {
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function system_block_save($delta = '', $edit = NULL) {
+function system__block_save($delta = '', $edit = NULL) {
   if ($delta == 'powered-by') {
     $image_path = 'misc/' . variable_get('drupal_badge_color', 'powered-blue') . '-' . variable_get('drupal_badge_size', '80x15') . '.png';
     variable_set('drupal_badge_color', $edit['color']);
@@ -1521,12 +1521,12 @@ function system_block_save($delta = '', $edit = NULL) {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  *
  * Generate a block with a promotional link to Drupal.org and
  * all system menu blocks.
  */
-function system_block_view($delta = '') {
+function system__block_view($delta = '') {
   $block = array();
   switch ($delta) {
     case 'main':
@@ -1748,7 +1748,7 @@ function _system_get_module_data() {
     // Merge in defaults and save.
     $modules[$key]->info = $module->info + $defaults;
 
-    // Invoke hook_system_info_alter() to give installed modules a chance to
+    // Invoke hook__system_info_alter() to give installed modules a chance to
     // modify the data in the .info files if necessary.
     drupal_alter('system_info', $modules[$key]->info, $modules[$key]);
   }
@@ -1822,7 +1822,7 @@ function _system_get_theme_data() {
       $themes[$key]->filename = $theme->filepath;
       $themes[$key]->info = drupal_parse_info_file($theme->filepath) + $defaults;
 
-      // Invoke hook_system_info_alter() to give installed modules a chance to
+      // Invoke hook__system_info_alter() to give installed modules a chance to
       // modify the data in the .info files if necessary.
       drupal_alter('system_info', $themes[$key]->info, $themes[$key]);
 
@@ -1984,9 +1984,9 @@ function system_region_list($theme_key, $show = REGIONS_ALL) {
 }
 
 /**
- * Implement hook_system_info_alter().
+ * Implement hook__system_info_alter().
  */
-function system_system_info_alter(&$info, $file) {
+function system__system_info_alter(&$info, $file) {
   // Remove page-top from the blocks UI since it is reserved for modules to
   // populate from outside the blocks system.
   $info['regions_hidden'][] = 'page_top';
@@ -2218,11 +2218,11 @@ function system_get_module_admin_tasks($module) {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  *
  * Remove older rows from flood and batch table. Remove old temporary files.
  */
-function system_cron() {
+function system__cron() {
   // Cleanup the flood.
   db_delete('flood')
     ->condition('timestamp', REQUEST_TIME - 3600, '<')
@@ -2266,9 +2266,9 @@ function system_cron() {
 }
 
 /**
- * Implement hook_hook_info().
+ * Implement hook__hook_info().
  */
-function system_hook_info() {
+function system__hook_info() {
   return array(
     'system' => array(
       'cron' => array(
@@ -2281,9 +2281,9 @@ function system_hook_info() {
 }
 
 /**
- * Implement hook_action_info().
+ * Implement hook__action_info().
  */
-function system_action_info() {
+function system__action_info() {
   return array(
     'system_message_action' => array(
       'type' => 'system',
@@ -2736,9 +2736,9 @@ function system_send_email_action($object, $context) {
 }
 
 /**
- * Implement hook_mail().
+ * Implement hook__mail().
  */
-function system_mail($key, &$message, $params) {
+function system__mail($key, &$message, $params) {
   $account = $params['account'];
   $context = $params['context'];
   $variables = array(
@@ -2986,9 +2986,9 @@ function theme_meta_generator_header($version = VERSION) {
 }
 
 /**
- * Implement hook_image_toolkits().
+ * Implement hook__image_toolkits().
  */
-function system_image_toolkits() {
+function system__image_toolkits() {
   return array(
     'gd' => array(
       'title' => t('GD2 image manipulation toolkit'),
diff --git a/modules/taxonomy/taxonomy.api.php b/modules/taxonomy/taxonomy.api.php
index 7f2de81..48cdfa7 100644
--- a/modules/taxonomy/taxonomy.api.php
+++ b/modules/taxonomy/taxonomy.api.php
@@ -20,7 +20,7 @@
  * @param $vocabulary
  *   A taxonomy vocabulary object.
  */
-function hook_taxonomy_vocabulary_load($vocabularies) {
+function hook__taxonomy_vocabulary_load($vocabularies) {
   foreach ($vocabularies as $vocabulary) {
     $vocabulary->synonyms = variable_get('taxonomy_' . $vocabulary->vid . '_synonyms', FALSE);
   }
@@ -35,7 +35,7 @@ function hook_taxonomy_vocabulary_load($vocabularies) {
  * @param $vocabulary
  *   A taxonomy vocabulary object.
  */
-function hook_taxonomy_vocabulary_insert($vocabulary) {
+function hook__taxonomy_vocabulary_insert($vocabulary) {
   if ($vocabulary->synonyms) {
     variable_set('taxonomy_' . $vocabulary->vid . '_synonyms', TRUE);
   }
@@ -49,7 +49,7 @@ function hook_taxonomy_vocabulary_insert($vocabulary) {
  * @param $term
  *   A taxonomy term object, passed by reference.
  */
-function hook_taxonomy_vocabulary_update($term) {
+function hook__taxonomy_vocabulary_update($term) {
   $status = $vocabulary->synonyms ? TRUE : FALSE;
   if ($vocabulary->synonyms) {
     variable_set('taxonomy_' . $vocabulary->vid . '_synonyms', $status);
@@ -65,7 +65,7 @@ function hook_taxonomy_vocabulary_update($term) {
  * @param $vocabulary
  *   A taxonomy vocabulary object.
  */
-function hook_taxonomy_vocabulary_delete($vocabulary) {
+function hook__taxonomy_vocabulary_delete($vocabulary) {
   if (variable_get('taxonomy_' . $vocabulary->vid . '_synonyms', FALSE)) {
     variable_del('taxonomy_' . $vocabulary->vid . '_synonyms');
   }
@@ -86,7 +86,7 @@ function hook_taxonomy_vocabulary_delete($vocabulary) {
  * @param $terms
  *   An array of term objects, indexed by tid.
  */
-function hook_taxonomy_term_load($terms) {
+function hook__taxonomy_term_load($terms) {
   $result = db_query('SELECT tid, foo FROM {mytable} WHERE tid IN (:tids)', array(':tids' => array_keys($terms)));
   foreach ($result as $record) {
     $terms[$record->tid]->foo = $record->foo;
@@ -102,7 +102,7 @@ function hook_taxonomy_term_load($terms) {
  * @param $term
  *   A taxonomy term object.
  */
-function hook_taxonomy_term_insert($term) {
+function hook__taxonomy_term_insert($term) {
   if (!empty($term->synonyms)) {
     foreach (explode ("\n", str_replace("\r", '', $term->synonyms)) as $synonym) {
       if ($synonym) {
@@ -125,8 +125,8 @@ function hook_taxonomy_term_insert($term) {
  * @param $term
  *   A taxonomy term object.
  */
-function hook_taxonomy_term_update($term) {
-  hook_taxonomy_term_delete($term);
+function hook__taxonomy_term_update($term) {
+  hook__taxonomy_term_delete($term);
   if (!empty($term->synonyms)) {
     foreach (explode ("\n", str_replace("\r", '', $term->synonyms)) as $synonym) {
       if ($synonym) {
@@ -150,7 +150,7 @@ function hook_taxonomy_term_update($term) {
  * @param $term
  *   A taxonomy term object.
  */
-function hook_taxonomy_term_delete($term) {
+function hook__taxonomy_term_delete($term) {
   db_delete('term_synoynm')->condition('tid', $term->tid)->execute();
 }
 
diff --git a/modules/taxonomy/taxonomy.install b/modules/taxonomy/taxonomy.install
index 6a59c46..66b744d 100644
--- a/modules/taxonomy/taxonomy.install
+++ b/modules/taxonomy/taxonomy.install
@@ -7,17 +7,17 @@
  */
 
  /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function taxonomy_install() {
+function taxonomy__install() {
   // Create tables.
   drupal_install_schema('taxonomy');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function taxonomy_uninstall() {
+function taxonomy__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('taxonomy');
 
@@ -27,9 +27,9 @@ function taxonomy_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function taxonomy_schema() {
+function taxonomy__schema() {
   $schema['taxonomy_term_data'] = array(
     'description' => 'Stores term information.',
     'fields' => array(
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index 228448f..b9fdc34 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function taxonomy_permission() {
+function taxonomy__permission() {
   return array(
     'administer taxonomy' => array(
       'title' => t('Administer taxonomy'),
@@ -19,9 +19,9 @@ function taxonomy_permission() {
 }
 
 /**
- * Implement hook_fieldable_info().
+ * Implement hook__fieldable_info().
  */
-function taxonomy_fieldable_info() {
+function taxonomy__fieldable_info() {
   $return = array(
     'taxonomy_term' => array(
       'label' => t('Taxonomy term'),
@@ -50,11 +50,11 @@ function taxonomy_fieldable_info() {
 }
 
 /**
- * Implement hook_field_build_modes();
+ * Implement hook__field_build_modes();
  *
  * @TODO: build mode for display as a field (when attached to nodes etc.).
  */
-function taxonomy_field_build_modes($obj_type) {
+function taxonomy__field_build_modes($obj_type) {
   $modes = array();
   if ($obj_type == 'term') {
     $modes = array(
@@ -65,9 +65,9 @@ function taxonomy_field_build_modes($obj_type) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function taxonomy_theme() {
+function taxonomy__theme() {
   return array(
     'taxonomy_term_select' => array(
       'arguments' => array('element' => NULL),
@@ -88,9 +88,9 @@ function taxonomy_theme() {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function taxonomy_node_view($node, $build_mode) {
+function taxonomy__node_view($node, $build_mode) {
   if (empty($node->taxonomy)) {
     return;
   }
@@ -165,9 +165,9 @@ function taxonomy_term_path($term) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function taxonomy_menu() {
+function taxonomy__menu() {
   $items['admin/structure/taxonomy'] = array(
     'title' => 'Taxonomy',
     'description' => 'Manage tagging, categorization, and classification of your content.',
@@ -637,13 +637,13 @@ function taxonomy_vocabulary_get_names() {
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  * Generate a form for selecting terms to associate with a node.
  * We check for taxonomy_override_selector before loading the full
  * vocabulary, so contrib modules can intercept before hook_form_alter
  *  and provide scalable alternatives.
  */
-function taxonomy_form_alter(&$form, $form_state, $form_id) {
+function taxonomy__form_alter(&$form, $form_state, $form_id) {
   if (!variable_get('taxonomy_override_selector', FALSE) && !empty($form['#node_edit_form'])) {
     $node = $form['#node'];
 
@@ -843,7 +843,7 @@ function taxonomy_node_get_terms($node, $key = 'tid') {
  */
 function taxonomy_node_save($node, $terms) {
 
-  taxonomy_node_delete_revision($node);
+  taxonomy__node_delete_revision($node);
 
   // Free tagging vocabularies do not send their tids in the form,
   // so we'll detect them here and process them independently.
@@ -929,16 +929,16 @@ function taxonomy_node_save($node, $terms) {
 }
 
 /**
- * Implement hook_node_type_insert().
+ * Implement hook__node_type_insert().
  */
-function taxonomy_node_type_insert($info) {
+function taxonomy__node_type_insert($info) {
   drupal_static_reset('taxonomy_term_count_nodes');
 }
 
 /**
- * Implement hook_node_type_update().
+ * Implement hook__node_type_update().
  */
-function taxonomy_node_type_update($info) {
+function taxonomy__node_type_update($info) {
   if (!empty($info->old_type) && $info->type != $info->old_type) {
     db_update('taxonomy_vocabulary_node_type')
       ->fields(array(
@@ -951,9 +951,9 @@ function taxonomy_node_type_update($info) {
 }
 
 /**
- * Implement hook_node_type_delete().
+ * Implement hook__node_type_delete().
  */
-function taxonomy_node_type_delete($info) {
+function taxonomy__node_type_delete($info) {
   db_delete('taxonomy_vocabulary_node_type')
     ->condition('type', $info->type)
     ->execute();
@@ -1295,7 +1295,7 @@ function taxonomy_vocabulary_load_multiple($vids = array(), $conditions = array(
       $queried_vocabularies[$record->vid] = $record;
     }
 
-    // Invoke hook_taxonomy_vocabulary_load() on the vocabularies loaded from
+    // Invoke hook__taxonomy_vocabulary_load() on the vocabularies loaded from
     // the database and add them to the static cache.
     if (!empty($queried_vocabularies)) {
       foreach (module_implements('taxonomy_vocabulary_load') as $module) {
@@ -1437,7 +1437,7 @@ function taxonomy_term_load_multiple($tids = array(), $conditions = array()) {
       // Attach fields.
       field_attach_load('taxonomy_term', $queried_terms);
 
-      // Invoke hook_taxonomy_term_load() and add the term objects to the
+      // Invoke hook__taxonomy_term_load() and add the term objects to the
       // static cache.
       foreach (module_implements('taxonomy_term_load') as $module) {
         $function = $module . '_taxonomy_term_load';
@@ -1624,9 +1624,9 @@ function taxonomy_select_nodes($tids = array(), $operator = 'or', $depth = 0, $p
 }
 
 /**
- * Implement hook_node_load().
+ * Implement hook__node_load().
  */
-function taxonomy_node_load($nodes) {
+function taxonomy__node_load($nodes) {
   // Get an array of tid, vid associations ordered by vocabulary and term
   // weight.
   $tids = taxonomy_get_tids_from_nodes($nodes);
@@ -1650,29 +1650,29 @@ function taxonomy_node_load($nodes) {
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function taxonomy_node_insert($node) {
+function taxonomy__node_insert($node) {
   if (!empty($node->taxonomy)) {
     taxonomy_node_save($node, $node->taxonomy);
   }
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function taxonomy_node_update($node) {
+function taxonomy__node_update($node) {
   if (!empty($node->taxonomy)) {
     taxonomy_node_save($node, $node->taxonomy);
   }
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  *
  * Remove associations of a node to its terms.
  */
-function taxonomy_node_delete($node) {
+function taxonomy__node_delete($node) {
   db_delete('taxonomy_term_node')
     ->condition('nid', $node->nid)
     ->execute();
@@ -1680,11 +1680,11 @@ function taxonomy_node_delete($node) {
 }
 
 /**
- * Implement hook_node_delete_revision().
+ * Implement hook__node_delete_revision().
  *
  * Remove associations of a node to its terms.
  */
-function taxonomy_node_delete_revision($node) {
+function taxonomy__node_delete_revision($node) {
   db_delete('taxonomy_term_node')
     ->condition('vid', $node->vid)
     ->execute();
@@ -1692,11 +1692,11 @@ function taxonomy_node_delete_revision($node) {
 }
 
 /**
- * Implement hook_node_validate().
+ * Implement hook__node_validate().
  *
  * Make sure incoming vids are free tagging enabled.
  */
-function taxonomy_node_validate($node, $form) {
+function taxonomy__node_validate($node, $form) {
   if (!empty($node->taxonomy)) {
     $terms = $node->taxonomy;
     if (!empty($terms['tags'])) {
@@ -1713,9 +1713,9 @@ function taxonomy_node_validate($node, $form) {
 }
 
 /**
- * Implement hook_node_update_index().
+ * Implement hook__node_update_index().
  */
-function taxonomy_node_update_index($node) {
+function taxonomy__node_update_index($node) {
   $output = array();
   foreach ($node->taxonomy as $term) {
     $output[] = $term->name;
@@ -1726,9 +1726,9 @@ function taxonomy_node_update_index($node) {
 }
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function taxonomy_help($path, $arg) {
+function taxonomy__help($path, $arg) {
   switch ($path) {
     case 'admin/help#taxonomy':
       $output = '<p>' . t('The taxonomy module allows you to categorize content using various systems of classification. Free-tagging vocabularies are created by users on the fly when they submit posts (as commonly found in blogs and social bookmarking applications). Controlled vocabularies allow for administrator-defined short lists of terms as well as complex hierarchies with multiple relationships between different terms. These methods can be applied to different content types and combined together to create a powerful and flexible method of classifying and presenting your content.') . '</p>';
@@ -1790,9 +1790,9 @@ function taxonomy_implode_tags($tags, $vid = NULL) {
 }
 
 /**
- * Implement hook_hook_info().
+ * Implement hook__hook_info().
  */
-function taxonomy_hook_info() {
+function taxonomy__hook_info() {
   return array(
     'taxonomy' => array(
       'taxonomy' => array(
@@ -1811,7 +1811,7 @@ function taxonomy_hook_info() {
 }
 
 /**
- * Implement hook_field_info().
+ * Implement hook__field_info().
  *
  * Field settings:
  * - allowed_values: a list array of one or more vocabulary trees:
@@ -1821,7 +1821,7 @@ function taxonomy_hook_info() {
  *     include the parent term.
  *
  */
-function taxonomy_field_info() {
+function taxonomy__field_info() {
   return array(
     'taxonomy_term' => array(
       'label' => t('Taxonomy term'),
@@ -1841,17 +1841,17 @@ function taxonomy_field_info() {
 }
 
 /**
- * Implement hook_field_widget_info_alter().
+ * Implement hook__field_widget_info_alter().
  */
-function taxonomy_field_widget_info_alter(&$info) {
+function taxonomy__field_widget_info_alter(&$info) {
   $info['options_select']['field types'][] = 'taxonomy_term';
   $info['options_buttons']['field types'][] = 'taxonomy_term';
 }
 
 /**
- * Implement hook_field_schema().
+ * Implement hook__field_schema().
  */
-function taxonomy_field_schema($field) {
+function taxonomy__field_schema($field) {
   return array(
     'columns' => array(
       'value' => array(
@@ -1867,12 +1867,12 @@ function taxonomy_field_schema($field) {
 }
 
 /**
- * Implement hook_field_validate().
+ * Implement hook__field_validate().
  *
  * Possible error codes:
  * - 'taxonomy_term_illegal_value': The value is not part of the list of allowed values.
  */
-function taxonomy_field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
+function taxonomy__field_validate($obj_type, $object, $field, $instance, $items, &$errors) {
   $allowed_values = taxonomy_allowed_values($field);
   foreach ($items as $delta => $item) {
     if (!empty($item['value'])) {
@@ -1887,7 +1887,7 @@ function taxonomy_field_validate($obj_type, $object, $field, $instance, $items,
 }
 
 /**
- * Implement hook_field_is_empty().
+ * Implement hook__field_is_empty().
  */
 function taxonomy__field_is_empty($item, $field) {
   if (empty($item['value']) && (string) $item['value'] !== '0') {
@@ -1897,9 +1897,9 @@ function taxonomy__field_is_empty($item, $field) {
 }
 
 /**
- * Implement hook_field_formatter_info().
+ * Implement hook__field_formatter_info().
  */
-function taxonomy_field_formatter_info() {
+function taxonomy__field_formatter_info() {
   return array(
     'taxonomy_term_link' => array(
       'label' => t('Link'),
@@ -1956,12 +1956,12 @@ function taxonomy_allowed_values($field) {
 }
 
 /**
- * Implement hook_field_load().
+ * Implement hook__field_load().
  *
  * This preloads all taxonomy terms for multiple loaded objects at once and
  * unsets values for invalid terms that do not exist.
  */
-function taxonomy_field_load($obj_type, $objects, $field, $instances, &$items, $age) {
+function taxonomy__field_load($obj_type, $objects, $field, $instances, &$items, $age) {
   $tids = array();
 
   // Collect every possible term attached to any of the fieldable entities.
diff --git a/modules/toolbar/toolbar.install b/modules/toolbar/toolbar.install
index 42dadd2..b9e89d3 100644
--- a/modules/toolbar/toolbar.install
+++ b/modules/toolbar/toolbar.install
@@ -7,12 +7,12 @@
  */
 
 /**
- * Implementation of hook_install().
+ * Implementation of hook__install().
  *
  * @todo
  *   Implement role based shortcut bars. 
  */
-function toolbar_install() {
+function toolbar__install() {
   $t = get_t();
   $query = db_insert('menu_custom')
     ->fields(array(
diff --git a/modules/toolbar/toolbar.module b/modules/toolbar/toolbar.module
index 0d87701..db448ab 100644
--- a/modules/toolbar/toolbar.module
+++ b/modules/toolbar/toolbar.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implementation of hook_permission().
+ * Implementation of hook__permission().
  */
-function toolbar_permission() {
+function toolbar__permission() {
   return array(
     'access toolbar' => array(
       'title' => t('Access administration toolbar'),
@@ -19,9 +19,9 @@ function toolbar_permission() {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function toolbar_theme($existing, $type, $theme, $path) {
+function toolbar__theme($existing, $type, $theme, $path) {
   $items['toolbar'] = array(
     'arguments' => array('toolbar' => array()),
     'template' => 'toolbar',
@@ -31,11 +31,11 @@ function toolbar_theme($existing, $type, $theme, $path) {
 }
 
 /**
- * Implement hook_page_alter().
+ * Implement hook__page_alter().
  * 
  * Add admin toolbar to the page_top region automatically.
  */
-function toolbar_page_alter(&$page) {
+function toolbar__page_alter(&$page) {
   if (user_access('access toolbar')) {
     $page['page_top']['toolbar'] = toolbar_build();
   }
diff --git a/modules/tracker/tracker.module b/modules/tracker/tracker.module
index 071476c..7a90fde 100644
--- a/modules/tracker/tracker.module
+++ b/modules/tracker/tracker.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function tracker_help($path, $arg) {
+function tracker__help($path, $arg) {
   switch ($path) {
     case 'admin/help#tracker':
       $output = '<p>' . t('The tracker module displays the most recently added or updated content on your site, and provides user-level tracking to follow the contributions of particular authors.') . '</p>';
@@ -20,9 +20,9 @@ function tracker_help($path, $arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function tracker_menu() {
+function tracker__menu() {
   $items['tracker'] = array(
     'title' => 'Recent posts',
     'page callback' => 'tracker_page',
diff --git a/modules/translation/translation.module b/modules/translation/translation.module
index 2596b88..ebef315 100644
--- a/modules/translation/translation.module
+++ b/modules/translation/translation.module
@@ -26,9 +26,9 @@
 define('TRANSLATION_ENABLED', 2);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function translation_help($path, $arg) {
+function translation__help($path, $arg) {
   switch ($path) {
     case 'admin/help#translation':
       $output = '<p>' . t('The content translation module allows content to be translated into different languages. Working with the <a href="@locale">locale module</a> (which manages enabled languages and provides translation for the site interface), the content translation module is key to creating and maintaining translated site content.', array('@locale' => url('admin/help/locale'))) . '</p>';
@@ -51,9 +51,9 @@ function translation_help($path, $arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function translation_menu() {
+function translation__menu() {
   $items = array();
   $items['node/%node/translate'] = array(
     'title' => 'Translate',
@@ -82,9 +82,9 @@ function _translation_tab_access($node) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function translation_permission() {
+function translation__permission() {
   return array(
     'translate content' => array(
       'title' => t('Translate content'),
@@ -94,7 +94,7 @@ function translation_permission() {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  */
 function translation_form_node_type_form_alter(&$form, &$form_state) {
   // Add translation option to content type form.
@@ -104,13 +104,13 @@ function translation_form_node_type_form_alter(&$form, &$form_state) {
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  *
  * - Add translation option to content type form.
  * - Alters language fields on node forms when a translation
  *   is about to be created.
  */
-function translation_form_alter(&$form, &$form_state, $form_id) {
+function translation__form_alter(&$form, &$form_state, $form_id) {
   if (isset($form['#id']) && $form['#id'] == 'node-form' && translation_supported_type($form['#node']->type)) {
     $node = $form['#node'];
     if (!empty($node->translation_source)) {
@@ -162,12 +162,12 @@ function translation_form_alter(&$form, &$form_state, $form_id) {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  *
  * Display translation links with native language names, if this node
  * is part of a translation set.
  */
-function translation_node_view($node, $build_mode) {
+function translation__node_view($node, $build_mode) {
   if (isset($node->tnid) && $translations = translation_node_get_translations($node->tnid)) {
     // Do not show link to the same node.
     unset($translations[$node->language]);
@@ -191,9 +191,9 @@ function translation_node_view($node, $build_mode) {
 }
 
 /**
- * Implement hook_node_prepare().
+ * Implement hook__node_prepare().
  */
-function translation_node_prepare($node) {
+function translation__node_prepare($node) {
   // Only act if we are dealing with a content type supporting translations.
   if (translation_supported_type($node->type)) {
     if (empty($node->nid) && isset($_GET['translation']) && isset($_GET['language']) &&
@@ -221,9 +221,9 @@ function translation_node_prepare($node) {
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function translation_node_insert($node) {
+function translation__node_insert($node) {
   // Only act if we are dealing with a content type supporting translations.
   if (translation_supported_type($node->type)) {
     if (!empty($node->translation_source)) {
@@ -254,9 +254,9 @@ function translation_node_insert($node) {
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function translation_node_update($node) {
+function translation__node_update($node) {
   // Only act if we are dealing with a content type supporting translations.
   if (translation_supported_type($node->type)) {
     if (isset($node->translation) && $node->translation && !empty($node->language) && $node->tnid) {
@@ -281,11 +281,11 @@ function translation_node_update($node) {
 }
 
 /**
- * Implement hook_node_validate().
+ * Implement hook__node_validate().
  *
  * Ensure that duplicate translations can not be created for the same source.
  */
-function translation_node_validate($node, $form) {
+function translation__node_validate($node, $form) {
   // Only act on translatable nodes with a tnid or translation_source.
   if (translation_supported_type($node->type) && (!empty($node->tnid) || !empty($form['#node']->translation_source->nid))) {
     $tnid = !empty($node->tnid) ? $node->tnid : $form['#node']->translation_source->nid;
@@ -297,9 +297,9 @@ function translation_node_validate($node, $form) {
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function translation_node_delete($node) {
+function translation__node_delete($node) {
   // Only act if we are dealing with a content type supporting translations.
   if (translation_supported_type($node->type)) {
     translation_remove_from_set($node);
@@ -406,11 +406,11 @@ function translation_path_get_translations($path) {
 }
 
 /**
- * Implement hook_translation_link_alter().
+ * Implement hook__translation_link_alter().
  *
  * Replaces links with pointers to translated versions of the content.
  */
-function translation_translation_link_alter(array &$links, $path) {
+function translation__translation_link_alter(array &$links, $path) {
   if ($paths = translation_path_get_translations($path)) {
     foreach ($links as $langcode => $link) {
       if (isset($paths[$langcode])) {
diff --git a/modules/trigger/tests/trigger_test.module b/modules/trigger/tests/trigger_test.module
index 6a452df..e3ce6b7 100644
--- a/modules/trigger/tests/trigger_test.module
+++ b/modules/trigger/tests/trigger_test.module
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implementation of hook_action_info().
+ * Implementation of hook__action_info().
  */
-function trigger_test_action_info() {
+function trigger_test__action_info() {
   // Register an action that can be assigned to the trigger "cron run".
   return array(
     'trigger_test_system_cron_action' => array(
diff --git a/modules/trigger/trigger.api.php b/modules/trigger/trigger.api.php
index 4e69a88..e1136fe 100644
--- a/modules/trigger/trigger.api.php
+++ b/modules/trigger/trigger.api.php
@@ -47,7 +47,7 @@
  *       modules and you simply want to declare support for all possible hooks,
  *       you can set 'hooks' => array('any' => TRUE). Common hooks are 'user',
  *       'node', 'comment', or 'taxonomy'. Any hook that has been described
- *       to Drupal in hook_hook_info() will work is a possiblity.
+ *       to Drupal in hook__hook_info() will work is a possiblity.
  *     - 'behavior': (optional) Human-readable array of behavior descriptions.
  *       The only one we have now is 'changes node property'. You will almost
  *       certainly never have to return this in your own implementations of this
@@ -60,7 +60,7 @@
  * the actions module sets the 'hook' and 'op' keys of the context array (so,
  * 'hook' may be 'node' and 'op' may be 'insert').
  */
-function hook_action_info() {
+function hook__action_info() {
   return array(
     'comment_unpublish_action' => array(
       'description' => t('Unpublish comment'),
@@ -87,7 +87,7 @@ function hook_action_info() {
  * @param $aid
  *   The action ID.
  */
-function hook_actions_delete($aid) {
+function hook__actions_delete($aid) {
   db_delete('actions_assignments')
     ->condition('aid', $aid)
     ->execute();  
@@ -97,11 +97,11 @@ function hook_actions_delete($aid) {
  * Alter the actions declared by another module.
  *
  * Called by actions_list() to allow modules to alter the return
- * values from implementations of hook_action_info().
+ * values from implementations of hook__action_info().
  *
  * @see trigger_example_action_info_alter().
  */
-function hook_action_info_alter(&$actions) {
+function hook__action_info_alter(&$actions) {
   $actions['node_unpublish_action']['description'] = t('Unpublish and remove from public view.');
 }
 
@@ -112,7 +112,7 @@ function hook_action_info_alter(&$actions) {
  * This hook is used by the Triggers API to present information about triggers
  * (or events) that your module allows users to assign actions to.
  *
- * See also hook_action_info().
+ * See also hook__action_info().
  *
  * @return
  *   - A nested array. The outermost key defines the module that the triggers
@@ -129,7 +129,7 @@ function hook_action_info_alter(&$actions) {
  * after that are the various operations for hook_node() that the node module
  * is exposing as triggers.
  */
-function hook_hook_info() {
+function hook__hook_info() {
   return array(
     'node' => array(
       'node' => array(
diff --git a/modules/trigger/trigger.install b/modules/trigger/trigger.install
index 233cd26..ce9a19e 100644
--- a/modules/trigger/trigger.install
+++ b/modules/trigger/trigger.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function trigger_install() {
+function trigger__install() {
   // Create tables.
   drupal_install_schema('trigger');
 
@@ -18,17 +18,17 @@ function trigger_install() {
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function trigger_uninstall() {
+function trigger__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('trigger');
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function trigger_schema() {
+function trigger__schema() {
   $schema['trigger_assignments'] = array(
     'description' => 'Maps trigger to hook and operation assignments from trigger.module.',
     'fields' => array(
diff --git a/modules/trigger/trigger.module b/modules/trigger/trigger.module
index 0b3820c..96d9047 100644
--- a/modules/trigger/trigger.module
+++ b/modules/trigger/trigger.module
@@ -8,9 +8,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function trigger_help($path, $arg) {
+function trigger__help($path, $arg) {
   $explanation = '<p>' . t('Triggers are system events, such as when new content is added or when a user logs in. Trigger module combines these triggers with actions (functional tasks), such as unpublishing content or e-mailing an administrator. The <a href="@url">Actions settings page</a> contains a list of existing actions and provides the ability to create and configure additional actions.', array('@url' => url('admin/settings/actions'))) . '</p>';
   switch ($path) {
     case 'admin/structure/trigger/comment':
@@ -32,9 +32,9 @@ function trigger_help($path, $arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function trigger_menu() {
+function trigger__menu() {
   $items['admin/structure/trigger'] = array(
     'title' => 'Triggers',
     'description' => 'Tell Drupal when to execute actions.',
@@ -132,7 +132,7 @@ function trigger_access_check($module) {
  *   The name of the hook being fired.
  * @param $op
  *   The name of the operation being executed. Defaults to an empty string
- *   because some hooks (e.g., hook_cron()) do not have operations.
+ *   because some hooks (e.g., hook__cron()) do not have operations.
  * @return
  *   An array of action IDs.
  */
@@ -144,9 +144,9 @@ function _trigger_get_hook_aids($hook, $op = '') {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function trigger_theme() {
+function trigger__theme() {
   return array(
     'trigger_display' => array(
       'arguments' => array('element'),
@@ -156,10 +156,10 @@ function trigger_theme() {
 }
 
 /**
- * Implement hook_forms(). We reuse code by using the
+ * Implement hook__forms(). We reuse code by using the
  * same assignment form definition for each node-op combination.
  */
-function trigger_forms() {
+function trigger__forms() {
   $hooks = module_invoke_all('hook_info');
   foreach ($hooks as $module => $info) {
     foreach ($hooks[$module] as $hook => $ops) {
@@ -243,37 +243,37 @@ function _trigger_node($node, $op, $a3 = NULL, $a4 = NULL) {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function trigger_node_view($node, $build_mode) {
+function trigger__node_view($node, $build_mode) {
   _trigger_node($node, 'view', $build_mode);
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function trigger_node_update($node) {
+function trigger__node_update($node) {
   _trigger_node($node, 'update');
 }
 
 /**
- * Implement hook_node_presave().
+ * Implement hook__node_presave().
  */
-function trigger_node_presave($node) {
+function trigger__node_presave($node) {
   _trigger_node($node, 'presave');
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function trigger_node_insert($node) {
+function trigger__node_insert($node) {
   _trigger_node($node, 'insert');
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function trigger_node_delete($node) {
+function trigger__node_delete($node) {
   _trigger_node($node, 'delete');
 }
 
@@ -304,30 +304,30 @@ function _trigger_normalize_comment_context($type, $comment) {
 }
 
 /**
- * Implement hook_comment_insert().
+ * Implement hook__comment_insert().
  */
-function trigger_comment_insert($comment) {
+function trigger__comment_insert($comment) {
   _trigger_comment($comment, 'insert');
 }
 
 /**
- * Implement hook_comment_update().
+ * Implement hook__comment_update().
  */
-function trigger_comment_update($comment) {
+function trigger__comment_update($comment) {
   _trigger_comment($comment, 'update');
 }
 
 /**
- * Implement hook_comment_delete().
+ * Implement hook__comment_delete().
  */
-function trigger_comment_delete($comment) {
+function trigger__comment_delete($comment) {
   _trigger_comment($comment, 'delete');
 }
 
 /**
- * Implement hook_comment_view().
+ * Implement hook__comment_view().
  */
-function trigger_comment_view($comment) {
+function trigger__comment_view($comment) {
   _trigger_comment($comment, 'view');
 }
 
@@ -369,9 +369,9 @@ function _trigger_comment($a1, $op) {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  */
-function trigger_cron() {
+function trigger__cron() {
   $aids = _trigger_get_hook_aids('cron', 'run');
   $context = array(
     'hook' => 'cron',
@@ -416,35 +416,35 @@ function _trigger_normalize_user_context($type, $account) {
 /**
  * trigger_user_login
  */
-function trigger_user_login(&$edit, $account, $category) {
+function trigger__user_login(&$edit, $account, $category) {
   _trigger_user('login', $edit, $account, $category);
 }
 
 /**
- * Implement hook_user_logout().
+ * Implement hook__user_logout().
  */
-function trigger_user_logout($account) {
+function trigger__user_logout($account) {
   _trigger_user('logout', $edit = NULL, $account);
 }
 
 /**
- * Implement hook_user_insert().
+ * Implement hook__user_insert().
  */
-function trigger_user_insert(&$edit, $account, $category) {
+function trigger__user_insert(&$edit, $account, $category) {
   _trigger_user('insert', $edit, $account, $category);
 }
 
 /**
- * Implement hook_user_update().
+ * Implement hook__user_update().
  */
-function trigger_user_update(&$edit, $account, $category) {
+function trigger__user_update(&$edit, $account, $category) {
   _trigger_user('update', $edit, $account, $category);
 }
 
 /**
- * Implement hook_user_cancel().
+ * Implement hook__user_cancel().
  */
-function trigger_user_cancel($edit, $account, $method) {
+function trigger__user_cancel($edit, $account, $method) {
   switch ($method) {
     case 'user_cancel_reassign':
     case 'user_cancel_delete':
@@ -454,9 +454,9 @@ function trigger_user_cancel($edit, $account, $method) {
 }
 
 /**
- * Implement hook_user_view().
+ * Implement hook__user_view().
  */
-function trigger_user_view($account) {
+function trigger__user_view($account) {
   _trigger_user('view', $edit = NULL, $account, NULL);
 }
 
@@ -527,11 +527,11 @@ function trigger_options($type = 'all') {
 }
 
 /**
- * Implement hook_actions_delete().
+ * Implement hook__actions_delete().
  *
  * Remove all trigger entries for the given action, when deleted.
  */
-function trigger_actions_delete($aid) {
+function trigger__actions_delete($aid) {
   db_delete('trigger_assignments')
     ->condition('aid', $aid)
     ->execute();
diff --git a/modules/update/update.api.php b/modules/update/update.api.php
index 6c15005..362c116 100644
--- a/modules/update/update.api.php
+++ b/modules/update/update.api.php
@@ -36,7 +36,7 @@
  * @see update_get_projects()
  * @see _update_process_info_list()
  */
-function hook_update_projects_alter(&$projects) {
+function hook__update_projects_alter(&$projects) {
   // Hide a site-specific module from the list.
   unset($projects['site_specific_module']);
 
@@ -84,7 +84,7 @@ function hook_update_projects_alter(&$projects) {
  *
  * @see update_calculate_project_data()
  */
-function hook_update_status_alter(&$projects) {
+function hook__update_status_alter(&$projects) {
   $settings = variable_get('update_advanced_project_settings', array());
   foreach ($projects as $project => $project_info) {
     if (isset($settings[$project]) && isset($settings[$project]['check']) &&
diff --git a/modules/update/update.fetch.inc b/modules/update/update.fetch.inc
index 2340200..3589295 100644
--- a/modules/update/update.fetch.inc
+++ b/modules/update/update.fetch.inc
@@ -32,7 +32,7 @@ function _update_refresh() {
   // status of the site. We do *not* want to clear the cache of available
   // releases just yet, since that data (even if it's stale) can be useful
   // during update_get_projects(); for example, to modules that implement
-  // hook_system_info_alter() such as cvs_deploy.
+  // hook__system_info_alter() such as cvs_deploy.
   _update_cache_clear('update_project_projects');
   _update_cache_clear('update_project_data');
 
@@ -146,11 +146,11 @@ function _update_get_fetch_url_base($project) {
  * on the configuration of the site, notifies administrators via email if there
  * are new releases or missing security updates.
  *
- * @see update_requirements()
+ * @see update__requirements()
  */
 function _update_cron_notify() {
   include_once DRUPAL_ROOT . '/includes/install.inc';
-  $status = update_requirements('runtime');
+  $status = update__requirements('runtime');
   $params = array();
   $notify_all = (variable_get('update_notification_threshold', 'all') == 'all');
   foreach (array('core', 'contrib') as $report_type) {
diff --git a/modules/update/update.install b/modules/update/update.install
index 681f8a5..3fda942 100644
--- a/modules/update/update.install
+++ b/modules/update/update.install
@@ -7,17 +7,17 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function update_install() {
+function update__install() {
   // Create cache table.
   drupal_install_schema('update');
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function update_uninstall() {
+function update__uninstall() {
   // Remove cache table.
   drupal_uninstall_schema('update');
   // Clear any variables that might be in use
@@ -35,9 +35,9 @@ function update_uninstall() {
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function update_schema() {
+function update__schema() {
   $schema['cache_update'] = drupal_get_schema_unprocessed('system', 'cache');
   $schema['cache_update']['description'] = 'Cache table for the Update module to store information about available releases, fetched from central server.';
   return $schema;
diff --git a/modules/update/update.module b/modules/update/update.module
index dc3b1da..bd037f3 100644
--- a/modules/update/update.module
+++ b/modules/update/update.module
@@ -62,9 +62,9 @@ define('UPDATE_NOT_FETCHED', -3);
 define('UPDATE_MAX_FETCH_ATTEMPTS', 2);
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function update_help($path, $arg) {
+function update__help($path, $arg) {
   switch ($path) {
     case 'admin/reports/updates':
       global $base_url;
@@ -75,7 +75,7 @@ function update_help($path, $arg) {
     case 'admin/appearance':
     case 'admin/config/modules':
       include_once DRUPAL_ROOT . '/includes/install.inc';
-      $status = update_requirements('runtime');
+      $status = update__requirements('runtime');
       foreach (array('core', 'contrib') as $report_type) {
         $type = 'update_' . $report_type;
         if (isset($status[$type]['severity'])) {
@@ -106,7 +106,7 @@ function update_help($path, $arg) {
       if (arg(0) == 'admin' && strpos($path, '#') === FALSE
           && user_access('administer site configuration')) {
         include_once DRUPAL_ROOT . '/includes/install.inc';
-        $status = update_requirements('runtime');
+        $status = update__requirements('runtime');
         foreach (array('core', 'contrib') as $report_type) {
           $type = 'update_' . $report_type;
           if (isset($status[$type])
@@ -121,9 +121,9 @@ function update_help($path, $arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function update_menu() {
+function update__menu() {
   $items = array();
 
   $items['admin/reports/updates'] = array(
@@ -151,9 +151,9 @@ function update_menu() {
 }
 
 /**
- * Implement the hook_theme() registry.
+ * Implement the hook__theme() registry.
  */
-function update_theme() {
+function update__theme() {
   return array(
     'update_settings' => array(
       'arguments' => array('form' => NULL),
@@ -168,7 +168,7 @@ function update_theme() {
 }
 
 /**
- * Implement hook_requirements().
+ * Implement hook__requirements().
  *
  * @return
  *   An array describing the status of the site regarding available updates.
@@ -181,14 +181,14 @@ function update_theme() {
  *   'reason' attribute, which is an integer constant to indicate why the
  *   given status is being returned (UPDATE_NOT_SECURE, UPDATE_NOT_CURRENT, or
  *   UPDATE_UNKNOWN). This is used for generating the appropriate e-mail
- *   notification messages during update_cron(), and might be useful for other
- *   modules that invoke update_requirements() to find out if the site is up
+ *   notification messages during update__cron(), and might be useful for other
+ *   modules that invoke update__requirements() to find out if the site is up
  *   to date or not.
  *
  * @see _update_message_text()
  * @see _update_cron_notify()
  */
-function update_requirements($phase) {
+function update__requirements($phase) {
   if ($phase == 'runtime') {
     if ($available = update_get_available(FALSE)) {
       module_load_include('inc', 'update', 'update.compare');
@@ -222,7 +222,7 @@ function update_requirements($phase) {
  * Private helper method to fill in the requirements array.
  *
  * This is shared for both core and contrib to generate the right elements in
- * the array for hook_requirements().
+ * the array for hook__requirements().
  *
  * @param $project
  *  Array of information about the project we're testing as returned by
@@ -233,8 +233,8 @@ function update_requirements($phase) {
  * @return
  *  An array to be included in the nested $requirements array.
  *
- * @see hook_requirements()
- * @see update_requirements()
+ * @see hook__requirements()
+ * @see update__requirements()
  * @see update_calculate_project_data()
  */
 function _update_requirement_check($project, $type) {
@@ -282,9 +282,9 @@ function _update_requirement_check($project, $type) {
 }
 
 /**
- * Implement hook_cron().
+ * Implement hook__cron().
  */
-function update_cron() {
+function update__cron() {
   $frequency = variable_get('update_check_frequency', 1);
   $interval = 60 * 60 * 24 * $frequency;
   // Cron should check for updates if there is no update data cached or if the
@@ -296,7 +296,7 @@ function update_cron() {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  *
  * Adds a submit handler to the system modules and themes forms, so that if a
  * site admin saves either form, we invalidate the cache of available updates.
@@ -308,7 +308,7 @@ function update_form_system_themes_form_alter(&$form, $form_state) {
 }
 
 /**
- * Implement hook_form_FORM_ID_alter().
+ * Implement hook__form_FORM_ID_alter().
  *
  * Adds a submit handler to the system modules and themes forms, so that if a
  * site admin saves either form, we invalidate the cache of available updates.
@@ -377,7 +377,7 @@ function update_get_available($refresh = FALSE) {
   }
   elseif ($needs_refresh || $refresh) {
     // If we need to refresh due to a newer .info file, ignore the argument
-    // and force the refresh (e.g., even for update_requirements()) to prevent
+    // and force the refresh (e.g., even for update__requirements()) to prevent
     // bogus results.
     $available = update_refresh();
   }
@@ -393,7 +393,7 @@ function update_refresh() {
 }
 
 /**
- * Implement hook_mail().
+ * Implement hook__mail().
  *
  * Constructs the email notification message when the site is out of date.
  *
@@ -411,7 +411,7 @@ function update_refresh() {
  * @see _update_cron_notify()
  * @see _update_message_text()
  */
-function update_mail($key, &$message, $params) {
+function update__mail($key, &$message, $params) {
   $language = $message['language'];
   $langcode = $language->language;
   $message['subject'] .= t('New release(s) available for !site_name', array('!site_name' => variable_get('site_name', 'Drupal')), array('langcode' => $langcode));
@@ -433,9 +433,9 @@ function update_mail($key, &$message, $params) {
  * Helper function to return the appropriate message text when the site is out
  * of date or missing a security update.
  *
- * These error messages are shared by both update_requirements() for the
+ * These error messages are shared by both update__requirements() for the
  * site-wide status report at admin/reports/status and in the body of the
- * notification emails generated by update_cron().
+ * notification emails generated by update__cron().
  *
  * @param $msg_type
  *   String to indicate what kind of message to generate. Can be either
@@ -511,7 +511,7 @@ function _update_message_text($msg_type, $msg_reason, $report_link = FALSE, $lan
 /**
  * Private sort function to order projects based on their status.
  *
- * @see update_requirements()
+ * @see update__requirements()
  * @see uasort()
  */
 function _update_project_status_sort($a, $b) {
@@ -615,7 +615,7 @@ function _update_cache_clear($cid = NULL) {
 }
 
 /**
- * Implement hook_flush_caches().
+ * Implement hook__flush_caches().
  *
  * Called from update.php (among others) to flush the caches.
  * Since we're running update.php, we are likely to install a new version of
@@ -630,7 +630,7 @@ function _update_cache_clear($cid = NULL) {
  * check if the site is in MAINTENANCE_MODE == 'update' (which indicates
  * update.php is running, not update module... alas for overloaded names).
  */
-function update_flush_caches() {
+function update__flush_caches() {
   if (defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'update') {
     _update_cache_clear();
   }
diff --git a/modules/upload/upload.install b/modules/upload/upload.install
index 0fa9d05..814fe9c 100644
--- a/modules/upload/upload.install
+++ b/modules/upload/upload.install
@@ -12,9 +12,9 @@
  */
 
 /**
- * Implement hook_install().
+ * Implement hook__install().
  */
-function upload_install() {
+function upload__install() {
   // Create table. The upload table might have been created in the Drupal 5
   // to Drupal 6 upgrade, and was migrated from the file_revisions table. So
   // in this case, there is no need to create the table, it is already there.
@@ -24,17 +24,17 @@ function upload_install() {
 }
 
 /**
- * Implement hook_uninstall().
+ * Implement hook__uninstall().
  */
-function upload_uninstall() {
+function upload__uninstall() {
   // Remove tables.
   drupal_uninstall_schema('upload');
 }
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function upload_schema() {
+function upload__schema() {
   $schema['upload'] = array(
     'description' => 'Stores uploaded file information and table associations.',
     'fields' => array(
diff --git a/modules/upload/upload.module b/modules/upload/upload.module
index 1381632..e3f6b04 100644
--- a/modules/upload/upload.module
+++ b/modules/upload/upload.module
@@ -8,9 +8,9 @@
  */
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function upload_help($path, $arg) {
+function upload__help($path, $arg) {
   switch ($path) {
     case 'admin/help#upload':
       $output = '<p>' . t('The upload module allows users to upload files to the site. The ability to upload files is important for members of a community who want to share work. It is also useful to administrators who want to keep uploaded files connected to posts.') . '</p>';
@@ -23,9 +23,9 @@ function upload_help($path, $arg) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function upload_theme() {
+function upload__theme() {
   return array(
     'upload_attachments' => array(
       'arguments' => array('elements' => NULL),
@@ -40,9 +40,9 @@ function upload_theme() {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function upload_permission() {
+function upload__permission() {
   return array(
     'upload files' => array(
       'title' => t('Upload files'),
@@ -84,9 +84,9 @@ function upload_node_links($node, $build_mode) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function upload_menu() {
+function upload__menu() {
   $items['upload/js'] = array(
     'page callback' => 'upload_js',
     'access arguments' => array('upload files'),
@@ -147,9 +147,9 @@ function _upload_file_limits($user) {
 }
 
 /**
- * Implement hook_file_download().
+ * Implement hook__file_download().
  */
-function upload_file_download($filepath) {
+function upload__file_download($filepath) {
   $filepath = file_create_path($filepath);
   $file = db_query("SELECT f.*, u.nid FROM {files} f INNER JOIN {upload} u ON f.fid = u.fid WHERE filepath = :path", array(':path' => $filepath))->fetchObject();
 
@@ -210,7 +210,7 @@ function upload_node_form_submit(&$form, &$form_state) {
   }
 }
 
-function upload_form_alter(&$form, $form_state, $form_id) {
+function upload__form_alter(&$form, $form_state, $form_id) {
   if ($form_id == 'node_type_form' && isset($form['identity']['type'])) {
     $form['workflow']['upload'] = array(
       '#type' => 'radios',
@@ -265,9 +265,9 @@ function upload_form_alter(&$form, $form_state, $form_id) {
 }
 
 /**
- * Implement hook_file_load().
+ * Implement hook__file_load().
  */
-function upload_file_load($files) {
+function upload__file_load($files) {
   // Add the upload specific data into the file object.
   $result = db_query('SELECT * FROM {upload} u WHERE u.fid IN (:fids)', array(':fids' => array_keys($files)))->fetchAll(PDO::FETCH_ASSOC);
   foreach ($result as $record) {
@@ -278,9 +278,9 @@ function upload_file_load($files) {
 }
 
 /**
- * Implement hook_file_references().
+ * Implement hook__file_references().
  */
-function upload_file_references($file) {
+function upload__file_references($file) {
   // If upload.module is still using a file, do not let other modules delete it.
   $file_used = (bool) db_query_range('SELECT 1 FROM {upload} WHERE fid = :fid', array(':fid' => $file->fid), 0, 1)->fetchField();
   if ($file_used) {
@@ -290,17 +290,17 @@ function upload_file_references($file) {
 }
 
 /**
- * Implement hook_file_delete().
+ * Implement hook__file_delete().
  */
-function upload_file_delete($file) {
+function upload__file_delete($file) {
   // Delete all information associated with the file.
   db_delete('upload')->condition('fid', $file->fid)->execute();
 }
 
 /**
- * Implement hook_node_load().
+ * Implement hook__node_load().
  */
-function upload_node_load($nodes, $types) {
+function upload__node_load($nodes, $types) {
   // Collect all the revision ids for nodes with upload enabled.
   $node_vids = array();
   foreach ($nodes as $node) {
@@ -336,9 +336,9 @@ function upload_node_load($nodes, $types) {
 }
 
 /**
- * Implement hook_node_view().
+ * Implement hook__node_view().
  */
-function upload_node_view($node, $build_mode) {
+function upload__node_view($node, $build_mode) {
   if (!isset($node->files)) {
     return;
   }
@@ -382,27 +382,27 @@ function upload_node_view($node, $build_mode) {
 }
 
 /**
- * Implement hook_node_insert().
+ * Implement hook__node_insert().
  */
-function upload_node_insert($node) {
+function upload__node_insert($node) {
   if (user_access('upload files')) {
     upload_save($node);
   }
 }
 
 /**
- * Implement hook_node_update().
+ * Implement hook__node_update().
  */
-function upload_node_update($node) {
+function upload__node_update($node) {
   if (user_access('upload files')) {
     upload_save($node);
   }
 }
 
 /**
- * Implement hook_node_delete().
+ * Implement hook__node_delete().
  */
-function upload_node_delete($node) {
+function upload__node_delete($node) {
   db_delete('upload')->condition('nid', $node->nid)->execute();
   if (!is_array($node->files)) {
     return;
@@ -413,9 +413,9 @@ function upload_node_delete($node) {
 }
 
 /**
- * Implement hook_node_delete_revision().
+ * Implement hook__node_delete_revision().
  */
-function upload_node_delete_revision($node) {
+function upload__node_delete_revision($node) {
   db_delete('upload')->condition('vid', $node->vid)->execute();
   if (!is_array($node->files)) {
     return;
@@ -426,9 +426,9 @@ function upload_node_delete_revision($node) {
 }
 
 /**
- * Implement hook_node_search_result().
+ * Implement hook__node_search_result().
  */
-function upload_node_search_result($node) {
+function upload__node_search_result($node) {
   return isset($node->files) && is_array($node->files) ? format_plural(count($node->files), '1 attachment', '@count attachments') : NULL;
 }
 
diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc
index 163d3e3..5869d10 100644
--- a/modules/user/user.admin.inc
+++ b/modules/user/user.admin.inc
@@ -937,9 +937,9 @@ function theme_user_filters($form) {
 }
 
 /**
- * Implementation of hook_modules_installed().
+ * Implementation of hook__modules_installed().
  */
-function user_modules_installed($modules) {
+function user__modules_installed($modules) {
   // Assign all available permissions to the administrator role.
   $rid = variable_get('user_admin_role', 0);
   if ($rid) {
@@ -958,9 +958,9 @@ function user_modules_installed($modules) {
 }
 
 /**
- * Implement hook_modules_uninstalled().
+ * Implement hook__modules_uninstalled().
  */
-function user_modules_uninstalled($modules) {
+function user__modules_uninstalled($modules) {
   $permissions = array();
   foreach ($modules as $module) {
     if (drupal_function_exists($module . '__permission')) {
diff --git a/modules/user/user.api.php b/modules/user/user.api.php
index 8974c7b..a5d7ae6 100644
--- a/modules/user/user.api.php
+++ b/modules/user/user.api.php
@@ -22,9 +22,9 @@
  *   An array of user objects, indexed by uid.
  *
  * @see user_load_multiple()
- * @see profile_user_load()
+ * @see profile__user_load()
  */
-function hook_user_load($users) {
+function hook__user_load($users) {
   $result = db_query('SELECT * FROM {my_table} WHERE uid IN (:uids)', array(':uids' => array_keys($users)));
   foreach ($result as $record) {
     $users[$record->uid]->foo = $result->foo;
@@ -48,10 +48,10 @@ function hook_user_load($users) {
  *   The account cancellation method.
  *
  * @see user_cancel_methods()
- * @see hook_user_cancel_methods_alter()
+ * @see hook__user_cancel_methods_alter()
  * @see user_cancel()
  */
-function hook_user_cancel($edit, $account, $method) {
+function hook__user_cancel($edit, $account, $method) {
   switch ($method) {
     case 'user_cancel_block_unpublish':
       // Unpublish nodes (current revisions).
@@ -92,7 +92,7 @@ function hook_user_cancel($edit, $account, $method) {
         ->execute()
         ->fetchCol();
       foreach ($nodes as $nid) {
-        node_delete($nid);
+        node__delete($nid);
       }
       // Delete old revisions.
       db_delete('node_revision')
@@ -128,7 +128,7 @@ function hook_user_cancel($edit, $account, $method) {
  * @see user_cancel_methods()
  * @see user_cancel_confirm_form()
  */
-function hook_user_cancel_methods_alter(&$methods) {
+function hook__user_cancel_methods_alter(&$methods) {
   // Limit access to disable account and unpublish content method.
   $methods['user_cancel_block_unpublish']['access'] = user_access('administer site configuration');
 
@@ -161,7 +161,7 @@ function hook_user_cancel_methods_alter(&$methods) {
  *     the callback function.
  *
  */
-function hook_user_operations() {
+function hook__user_operations() {
   $operations = array(
     'unblock' => array(
       'label' => t('Unblock the selected users'),
@@ -191,7 +191,7 @@ function hook_user_operations() {
  * @param $category
  *   The active category of user information being edited.
  */
-function hook_user_after_update(&$edit, $account, $category) {
+function hook__user_after_update(&$edit, $account, $category) {
   db_insert('user_changes')
     ->fields(array(
       'uid' => $account->uid,
@@ -209,7 +209,7 @@ function hook_user_after_update(&$edit, $account, $category) {
  *   - "title": The human-readable, localized name of the category.
  *   - "weight": An integer specifying the category's sort ordering.
  */
-function hook_user_categories() {
+function hook__user_categories() {
   return array(array(
     'name' => 'account',
     'title' => t('Account settings'),
@@ -232,7 +232,7 @@ function hook_user_categories() {
  * @return
  *   A $form array containing the form elements to display.
  */
-function hook_user_form(&$edit, $account, $category = NULL) {
+function hook__user_form(&$edit, $account, $category = NULL) {
   if ($category == 'account') {
     $form['comment_settings'] = array(
       '#type' => 'fieldset',
@@ -262,7 +262,7 @@ function hook_user_form(&$edit, $account, $category = NULL) {
  * @param $category
  *   The active category of user information being edited.
  */
-function hook_user_insert(&$edit, $account, $category) {
+function hook__user_insert(&$edit, $account, $category) {
   db_insert('mytable')
     ->fields(array(
       'myfield' => $edit['myfield'],
@@ -280,7 +280,7 @@ function hook_user_insert(&$edit, $account, $category) {
  * @param $account
  *   The user object on which the operation was just performed.
  */
-function hook_user_login(&$edit, $account) {
+function hook__user_login(&$edit, $account) {
   // If the user has a NULL time zone, notify them to set a time zone.
   if (!$user->timezone && variable_get('configurable_timezones', 1) && variable_get('empty_timezone_message', 0)) {
     drupal_set_message(t('Please configure your <a href="@user-edit">account time zone setting</a>.', array('@user-edit' => url("user/$user->uid/edit", array('query' => drupal_get_destination(), 'fragment' => 'edit-timezone')))));
@@ -293,7 +293,7 @@ function hook_user_login(&$edit, $account) {
  * @param $account
  *   The user object on which the operation was just performed.
  */
-function hook_user_logout($account) {
+function hook__user_logout($account) {
   db_insert('logouts')
     ->fields(array(
       'uid' => $account->uid,
@@ -317,7 +317,7 @@ function hook_user_logout($account) {
  * @return
  *   A $form array containing the form elements to display.
  */
-function hook_user_register(&$edit, $account, $category) {
+function hook__user_register(&$edit, $account, $category) {
   if (variable_get('configurable_timezones', 1)) {
     $form = array();
     if (variable_get('user_default_timezone', DRUPAL_USER_TIMEZONE_DEFAULT) == DRUPAL_USER_TIMEZONE_SELECT) {
@@ -343,7 +343,7 @@ function hook_user_register(&$edit, $account, $category) {
  * @param $category
  *   The active category of user information being edited.
  */
-function hook_user_submit(&$edit, $account, $category) {
+function hook__user_submit(&$edit, $account, $category) {
   if ($category == 'account') {
     if (!empty($edit['picture_upload'])) {
       $edit['picture'] = $edit['picture_upload'];
@@ -375,7 +375,7 @@ function hook_user_submit(&$edit, $account, $category) {
  * @param $category
  *   The active category of user information being edited.
  */
-function hook_user_update(&$edit, $account, $category) {
+function hook__user_update(&$edit, $account, $category) {
   db_update('mytable')
     ->fields(array('myfield' => $edit['myfield']))
     ->condition('uid', $account->uid)
@@ -396,7 +396,7 @@ function hook_user_update(&$edit, $account, $category) {
  * @param $category
  *   The active category of user information being edited.
  */
-function hook_user_validate(&$edit, $account, $category) {
+function hook__user_validate(&$edit, $account, $category) {
   if ($category == 'mymodule' && empty($edit['myfield'])) {
     form_set_error('myfield', t('Myfield is required.'));
   }
@@ -411,7 +411,7 @@ function hook_user_validate(&$edit, $account, $category) {
  * @param $account
  *   The user object on which the operation is being performed.
  */
-function hook_user_view($account) {
+function hook__user_view($account) {
   if (user_access('create blog content', $account)) {
     $account->content['summary']['blog'] =  array(
       '#type' => 'user_profile_item',
diff --git a/modules/user/user.install b/modules/user/user.install
index 7a63b2f..00a961a 100644
--- a/modules/user/user.install
+++ b/modules/user/user.install
@@ -7,9 +7,9 @@
  */
 
 /**
- * Implement hook_schema().
+ * Implement hook__schema().
  */
-function user_schema() {
+function user__schema() {
   $schema['authmap'] = array(
     'description' => 'Stores distributed authentication mapping.',
     'fields' => array(
diff --git a/modules/user/user.module b/modules/user/user.module
index dcc0e73..84715d0 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -31,9 +31,9 @@ function user_module_invoke($type, &$edit, $account, $category = NULL) {
 }
 
 /**
- * Implement hook_theme().
+ * Implement hook__theme().
  */
-function user_theme() {
+function user__theme() {
   return array(
     'user_picture' => array(
       'arguments' => array('account' => NULL),
@@ -84,9 +84,9 @@ function user_theme() {
 }
 
 /**
- * Implement hook_fieldable_info().
+ * Implement hook__fieldable_info().
  */
-function user_fieldable_info() {
+function user__fieldable_info() {
   $return = array(
     'user' => array(
       'label' => t('User'),
@@ -108,9 +108,9 @@ function user_fieldable_info() {
 }
 
 /**
- * Implement hook_field_build_modes().
+ * Implement hook__field_build_modes().
  */
-function user_field_build_modes($obj_type) {
+function user__field_build_modes($obj_type) {
   $modes = array();
   if ($obj_type == 'user') {
     $modes = array(
@@ -241,7 +241,7 @@ function user_load_multiple($uids = array(), $conditions = array(), $reset = FAL
 
       field_attach_load('user', $queried_users);
 
-      // Invoke hook_user_load() on the users loaded from the database
+      // Invoke hook__user_load() on the users loaded from the database
       // and add them to the static cache.
       foreach (module_implements('user_load') as $module) {
         $function = $module . '__user_load';
@@ -431,7 +431,7 @@ function user_save($account, $edit = array(), $category = 'account') {
     }
 
     // If the picture changed or was unset, remove the old one. This step needs
-    // to occur after updating the {users} record so that user_file_references()
+    // to occur after updating the {users} record so that user__file_references()
     // doesn't report it in use and block the deletion.
     if (!empty($account->picture->fid) && ($edit['picture'] != $account->picture->fid)) {
       file_delete($account->picture);
@@ -759,9 +759,9 @@ function user_is_blocked($name) {
 }
 
 /**
- * Implement hook_permission().
+ * Implement hook__permission().
  */
-function user_permission() {
+function user__permission() {
   return array(
     'administer permissions' =>  array(
       'title' => t('Administer permissions'),
@@ -791,11 +791,11 @@ function user_permission() {
 }
 
 /**
- * Implement hook_file_download().
+ * Implement hook__file_download().
  *
  * Ensure that user pictures (avatars) are always downloadable.
  */
-function user_file_download($filepath) {
+function user__file_download($filepath) {
   if (strpos($filepath, variable_get('user_picture_path', 'pictures') . '/picture-') === 0) {
     $info = image_get_info(file_create_path($filepath));
     return array('Content-Type' => $info['mime_type']);
@@ -803,9 +803,9 @@ function user_file_download($filepath) {
 }
 
 /**
- * Implement hook_file_references().
+ * Implement hook__file_references().
  */
-function user_file_references($file) {
+function user__file_references($file) {
   // Determine if the file is used by this module.
   $file_used = (bool) db_query_range('SELECT 1 FROM {users} WHERE picture = :fid', array(':fid' => $file->fid), 0, 1)->fetchField();
   if ($file_used) {
@@ -815,9 +815,9 @@ function user_file_references($file) {
 }
 
 /**
- * Implement hook_file_delete().
+ * Implement hook__file_delete().
  */
-function user_file_delete($file) {
+function user__file_delete($file) {
   // Remove any references to the file.
   db_update('users')
     ->fields(array('picture' => 0))
@@ -826,9 +826,9 @@ function user_file_delete($file) {
 }
 
 /**
- * Implement hook_search().
+ * Implement hook__search().
  */
-function user_search($op = 'search', $keys = NULL, $skip_access_check = FALSE) {
+function user__search($op = 'search', $keys = NULL, $skip_access_check = FALSE) {
   switch ($op) {
     case 'name':
       if ($skip_access_check || user_access('access user profiles')) {
@@ -862,9 +862,9 @@ function user_search($op = 'search', $keys = NULL, $skip_access_check = FALSE) {
 }
 
 /**
- * Implement hook_elements().
+ * Implement hook__elements().
  */
-function user_elements() {
+function user__elements() {
   return array(
     'user_profile_category' => array(
       '#theme_wrappers' => array('user_profile_category')
@@ -876,9 +876,9 @@ function user_elements() {
 }
 
 /**
- * Implement hook_user_view().
+ * Implement hook__user_view().
  */
-function user_user_view($account) {
+function user__user_view($account) {
   $account->content['user_picture'] = array(
     '#markup' => theme('user_picture', $account),
     '#weight' => -10,
@@ -902,7 +902,7 @@ function user_user_view($account) {
 /**
  * Implement hook_user_form.
  */
-function user_user_form(&$edit, $account, $category) {
+function user__user_form(&$edit, $account, $category) {
   if ($category == 'account') {
     $form_state = array();
     return user_edit_form($form_state, (isset($account->uid) ? $account->uid : FALSE), $edit);
@@ -910,9 +910,9 @@ function user_user_form(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_user_validate().
+ * Implement hook__user_validate().
  */
-function user_user_validate(&$edit, $account, $category) {
+function user__user_validate(&$edit, $account, $category) {
   if ($category == 'account') {
     $uid = isset($account->uid) ? $account->uid : FALSE;
     // Validate the username when: new user account; or user is editing own account and can change username; or an admin user.
@@ -951,9 +951,9 @@ function user_user_validate(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_user_submit().
+ * Implement hook__user_submit().
  */
-function user_user_submit(&$edit, $account, $category) {
+function user__user_submit(&$edit, $account, $category) {
   if ($category == 'account') {
     if (!empty($edit['picture_upload'])) {
       $edit['picture'] = $edit['picture_upload'];
@@ -973,9 +973,9 @@ function user_user_submit(&$edit, $account, $category) {
 }
 
 /**
- * Implement hook_user_categories().
+ * Implement hook__user_categories().
  */
-function user_user_categories() {
+function user__user_categories() {
   return array(array(
     'name' => 'account',
     'title' => t('Account settings'),
@@ -1015,9 +1015,9 @@ function user_login_block() {
 }
 
 /**
- * Implement hook_block_list().
+ * Implement hook__block_list().
  */
-function user_block_list() {
+function user__block_list() {
   global $user;
 
   $blocks['login']['info'] = t('User login');
@@ -1033,9 +1033,9 @@ function user_block_list() {
 }
 
 /**
- * Implement hook_block_configure().
+ * Implement hook__block_configure().
  */
-function user_block_configure($delta = '') {
+function user__block_configure($delta = '') {
   global $user;
 
   switch ($delta) {
@@ -1058,9 +1058,9 @@ function user_block_configure($delta = '') {
 }
 
 /**
- * Implement hook_block_save().
+ * Implement hook__block_save().
  */
-function user_block_save($delta = '', $edit = array()) {
+function user__block_save($delta = '', $edit = array()) {
   global $user;
 
   switch ($delta) {
@@ -1076,9 +1076,9 @@ function user_block_save($delta = '', $edit = array()) {
 }
 
 /**
- * Implement hook_block_view().
+ * Implement hook__block_view().
  */
-function user_block_view($delta = '') {
+function user__block_view($delta = '') {
   global $user;
 
   $block = array();
@@ -1257,9 +1257,9 @@ function user_load_self($arg) {
 }
 
 /**
- * Implement hook_menu().
+ * Implement hook__menu().
  */
-function user_menu() {
+function user__menu() {
   $items['user/autocomplete'] = array(
     'title' => 'User autocomplete',
     'page callback' => 'user_autocomplete',
@@ -1435,7 +1435,7 @@ function user_menu() {
   return $items;
 }
 
-function user_init() {
+function user__init() {
   drupal_add_css(drupal_get_path('module', 'user') . '/user.css');
 }
 
@@ -1584,7 +1584,7 @@ function user_login(&$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
+ * 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.
@@ -2077,9 +2077,9 @@ function user_build_content($account) {
 }
 
 /**
- * Implement hook_mail().
+ * Implement hook__mail().
  */
-function user_mail($key, &$message, $params) {
+function user__mail($key, &$message, $params) {
   $language = $message['language'];
   $variables = user_mail_tokens($params['account'], $language);
   $message['subject'] .= _user_mail_text($key . '_subject', $language, $variables);
@@ -2089,7 +2089,7 @@ function user_mail($key, &$message, $params) {
 /**
  * Returns a mail string for a variable name.
  *
- * Used by user_mail() and the settings forms to retrieve strings.
+ * Used by user__mail() and the settings forms to retrieve strings.
  */
 function _user_mail_text($key, $language = NULL, $variables = array()) {
   $langcode = isset($language) ? $language->language : NULL;
@@ -2204,9 +2204,9 @@ function user_roles($membersonly = FALSE, $permission = NULL) {
 }
 
 /**
- * Implement hook_user_operations().
+ * Implement hook__user_operations().
  */
-function user_user_operations($form_state = array()) {
+function user__user_operations($form_state = array()) {
   $operations = array(
     'unblock' => array(
       'label' => t('Unblock the selected users'),
@@ -2403,9 +2403,9 @@ function user_multiple_cancel_confirm_submit($form, &$form_state) {
 }
 
 /**
- * Implement hook_help().
+ * Implement hook__help().
  */
-function user_help($path, $arg) {
+function user__help($path, $arg) {
   global $user;
 
   switch ($path) {
@@ -2518,9 +2518,9 @@ function user_build_filter_query(SelectQuery $query) {
 }
 
 /**
- * Implement hook_forms().
+ * Implement hook__forms().
  */
-function user_forms() {
+function user__forms() {
   $forms['user_admin_access_add_form']['callback'] = 'user_admin_access_form';
   $forms['user_admin_access_edit_form']['callback'] = 'user_admin_access_form';
   $forms['user_admin_new_role']['callback'] = 'user_admin_role';
@@ -2528,9 +2528,9 @@ function user_forms() {
 }
 
 /**
- * Implement hook_comment_view().
+ * Implement hook__comment_view().
  */
-function user_comment_view($comment) {
+function user__comment_view($comment) {
   if (variable_get('user_signatures', 0) && !empty($comment->signature)) {
     $comment->signature = check_markup($comment->signature, $comment->format);
   }
@@ -2687,9 +2687,9 @@ function _user_password_dynamic_validation() {
 }
 
 /**
- * Implementation of hook_node_load().
+ * Implementation of hook__node_load().
  */
-function user_node_load($nodes, $types) {
+function user__node_load($nodes, $types) {
   // Build an array of all uids for node authors, keyed by nid.
   $uids = array();
   foreach ($nodes as $nid => $node) {
@@ -2708,18 +2708,18 @@ function user_node_load($nodes, $types) {
 }
 
 /**
- * Implement hook_image_style_delete().
+ * Implement hook__image_style_delete().
  */
-function user_image_style_delete($style) {
+function user__image_style_delete($style) {
   // If a style is deleted, update the variables.
   // Administrators choose a replacement style when deleting.
-  user_image_style_save($style);
+  user__image_style_save($style);
 }
 
 /**
- * Implement hook_image_style_save().
+ * Implement hook__image_style_save().
  */
-function user_image_style_save($style) {
+function user__image_style_save($style) {
   // If a style is renamed, update the variables that use it.
   if (isset($style['old_name']) && $style['old_name'] == variable_get('user_picture_style', '')) {
     variable_set('user_picture_style', $style['name']);
@@ -2727,9 +2727,9 @@ function user_image_style_save($style) {
 }
 
 /**
- * Implement hook_hook_info().
+ * Implement hook__hook_info().
  */
-function user_hook_info() {
+function user__hook_info() {
   return array(
     'user' => array(
       'user' => array(
@@ -2757,9 +2757,9 @@ function user_hook_info() {
 }
 
 /**
- * Implement hook_action_info().
+ * Implement hook__action_info().
  */
-function user_action_info() {
+function user__action_info() {
   return array(
     'user_block_user_action' => array(
       'description' => t('Block current user'),
@@ -2938,7 +2938,7 @@ function user_register() {
   // If the "account" fieldset is the only element at the top level, its
   // borders are hidden for aesthetic reasons. We do not remove the fieldset but
   // preserve the form structure so that modules implementing
-  // hook_form_FORM_ID_alter() know where to find the basic elements.
+  // hook__form_FORM_ID_alter() know where to find the basic elements.
   if (count(element_children($form)) == 1) {
     $form['account']['#type'] = 'markup';
   }
diff --git a/modules/user/user.pages.inc b/modules/user/user.pages.inc
index 7c33cd0..f983f6d 100644
--- a/modules/user/user.pages.inc
+++ b/modules/user/user.pages.inc
@@ -163,7 +163,7 @@ function user_logout() {
  * To theme user profiles, copy modules/user/user-profile.tpl.php
  * to your theme directory, and edit it as instructed in that file's comments.
  */
-function user_view($account) {
+function user__view($account) {
   drupal_set_title($account->name);
   // Retrieve all profile fields and attach to $account->content.
   user_build_content($account);
@@ -435,12 +435,12 @@ function user_cancel_confirm_form_submit($form, &$form_state) {
 /**
  * Helper function to return available account cancellation methods.
  *
- * Please refer to the documentation of hook_user_cancel_methods_alter().
+ * Please refer to the documentation of hook__user_cancel_methods_alter().
  *
  * @return
  *   An array containing all account cancellation methods as form elements.
  *
- * @see hook_user_cancel_methods_alter()
+ * @see hook__user_cancel_methods_alter()
  * @see user_admin_settings()
  * @see user_cancel_confirm_form()
  * @see user_multiple_cancel_confirm()
diff --git a/modules/user/user.test b/modules/user/user.test
index fb6f055..deda444 100644
--- a/modules/user/user.test
+++ b/modules/user/user.test
@@ -1117,7 +1117,7 @@ class UserBlocksUnitTests extends DrupalWebTestCase {
     $this->insertSession();
 
     // Test block output.
-    $block = user_block_view('online');
+    $block = user__block_view('online');
     $this->drupalSetContent($block['content']);
     $this->assertRaw(t('%members and %visitors', array('%members' => '2 users', '%visitors' => '2 guests')), t('Correct number of online users (2 users and 2 guests).'));
     $this->assertText($user1->name, t('Active user 1 found in online list.'));
diff --git a/profiles/default/default.profile b/profiles/default/default.profile
index 6854d6f..a39e5ed 100644
--- a/profiles/default/default.profile
+++ b/profiles/default/default.profile
@@ -2,9 +2,9 @@
 // $Id: default.profile,v 1.62 2009-08-03 03:04:34 webchick Exp $
 
 /**
- * Implement hook_profile_tasks().
+ * Implement hook__profile_tasks().
  */
-function default_profile_tasks() {
+function default__profile_tasks() {
   $tasks = array(
     'default_profile_site_setup' => array(),
   );
@@ -230,12 +230,12 @@ function default_profile_site_setup(&$install_state) {
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  *
  * Allows the profile to alter the site-configuration form. This is
  * called through custom invocation, so $form_state is not populated.
  */
-function default_form_alter(&$form, $form_state, $form_id) {
+function default__form_alter(&$form, $form_state, $form_id) {
   if ($form_id == 'install_configure') {
     // Set default for site name field.
     $form['site_information']['site_name']['#default_value'] = $_SERVER['SERVER_NAME'];
diff --git a/profiles/expert/expert.profile b/profiles/expert/expert.profile
index 3d44ef9..3330afb 100644
--- a/profiles/expert/expert.profile
+++ b/profiles/expert/expert.profile
@@ -2,9 +2,9 @@
 // $Id: expert.profile,v 1.12 2009-08-11 12:20:26 dries Exp $
 
 /**
- * Implement hook_profile_tasks().
+ * Implement hook__profile_tasks().
  */
-function expert_profile_tasks() {
+function expert__profile_tasks() {
   $tasks = array(
     'expert_profile_site_setup' => array(),
   );
@@ -83,12 +83,12 @@ function expert_profile_site_setup(&$install_state) {
 }
 
 /**
- * Implement hook_form_alter().
+ * Implement hook__form_alter().
  *
  * Allows the profile to alter the site-configuration form. This is
  * called through custom invocation, so $form_state is not populated.
  */
-function expert_form_alter(&$form, $form_state, $form_id) {
+function expert__form_alter(&$form, $form_state, $form_id) {
   if ($form_id == 'install_configure') {
     // Set default for site name field.
     $form['site_information']['site_name']['#default_value'] = $_SERVER['SERVER_NAME'];
diff --git a/update.php b/update.php
index ae48bdb..6783b55 100644
--- a/update.php
+++ b/update.php
@@ -20,7 +20,7 @@ define('DRUPAL_ROOT', getcwd());
 
 /**
  * Global flag to identify update.php run, and so avoid various unwanted
- * operations, such as hook_init() and hook_exit() invokes, css/js preprocessing
+ * operations, such as hook__init() and hook__exit() invokes, css/js preprocessing
  * and translation, and solve some theming issues. This flag is checked on several
  * places in Drupal code (not just update.php).
  */
