Index: includes/module.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/module.inc,v
retrieving revision 1.192
diff -u -p -r1.192 module.inc
--- includes/module.inc	9 May 2010 13:49:33 -0000	1.192
+++ includes/module.inc	12 Jun 2010 19:54:53 -0000
@@ -589,9 +589,12 @@ function module_implements($hook, $sort 
     $implementations[$hook] = array();
     $list = module_list(FALSE, FALSE, $sort);
     foreach ($list as $module) {
-      $include_file = isset($hook_info[$hook]['group']) && module_load_include('inc', $module, $module . '.' . $hook_info[$hook]['group']);
+      $file = FALSE;
+      if (isset($hook_info[$hook]['group'])) {
+        $file = module_load_include('inc', $module, $module . '.' . $hook_info[$hook]['group']);
+      }
       if (module_hook($module, $hook)) {
-        $implementations[$hook][$module] = $include_file ? $hook_info[$hook]['group'] : FALSE;
+        $implementations[$hook][$module] = $file;
         // We added something to the cache, so write it when we are done.
         $implementations['#write_cache'] = TRUE;
       }
@@ -603,11 +606,11 @@ function module_implements($hook, $sort 
     }
   }
   else {
-    foreach ($implementations[$hook] as $module => $group) {
+    foreach ($implementations[$hook] as $module => $file) {
       // If this hook implementation is stored in a lazy-loaded file, so include
       // that file first.
-      if ($group) {
-        module_load_include('inc', $module, "$module.$group");
+      if ($file && is_file($file)) {
+        require_once $file;
       }
       // It is possible that a module removed a hook implementation without the
       // implementations cache being rebuilt yet, so we check module_hook() on
@@ -903,4 +906,3 @@ function drupal_alter($type, &$data, &$c
     $function($data, $context1, $context2);
   }
 }
-
Index: modules/simpletest/tests/module.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/module.test,v
retrieving revision 1.21
diff -u -p -r1.21 module.test
--- modules/simpletest/tests/module.test	22 Apr 2010 18:56:31 -0000	1.21
+++ modules/simpletest/tests/module.test	12 Jun 2010 20:19:41 -0000
@@ -104,11 +104,11 @@ class ModuleUnitTest extends DrupalWebTe
     // For that activate the module_test which provides the file to load.
     module_enable(array('module_test'));
 
-    module_load_include('inc', 'module_test', 'module_test.file');
+    $include_file = module_load_include('inc', 'module_test', 'module_test.file');
     $modules = module_implements('test_hook');
     $static = drupal_static('module_implements');
     $this->assertTrue(in_array('module_test', $modules), 'Hook found.');
-    $this->assertEqual($static['test_hook']['module_test'], 'file', 'Include file detected.');
+    $this->assertEqual($static['test_hook']['module_test'], $include_file, 'Include file detected.');
   }
 
   /**
