diff --git includes/common.inc includes/common.inc
index f041d58..c42deb9 100644
--- includes/common.inc
+++ includes/common.inc
@@ -3556,7 +3556,6 @@ function drupal_common_theme() {
       'arguments' => array('content' => NULL, 'show_blocks' => TRUE, 'show_messages' => TRUE),
       'template' => 'maintenance-page',
       'path' => 'includes',
-      'file' => 'theme.maintenance.inc',
     ),
     'update_page' => array(
       'arguments' => array('content' => NULL, 'show_messages' => TRUE),
diff --git includes/theme.inc includes/theme.inc
index 6edec5d..4f65015 100644
--- includes/theme.inc
+++ includes/theme.inc
@@ -280,7 +280,7 @@ function drupal_theme_rebuild() {
 function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
   $result = array();
   $function = $name . '_theme';
-  if (function_exists($function)) {
+  if (drupal_function_exists($function)) {
     $result = $function($cache, $type, $theme, $path);
 
     foreach ($result as $hook => $info) {
@@ -291,18 +291,6 @@ function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
       if (!isset($info['template']) && !isset($info['function'])) {
         $result[$hook]['function'] = ($type == 'module' ? 'theme_' : $name . '_') . $hook;
       }
-      // If a path is set in the info, use what was set. Otherwise use the
-      // default path. This is mostly so system.module can declare theme
-      // functions on behalf of core .include files.
-      // All files are included to be safe. Conditionally included
-      // files can prevent them from getting registered.
-      if (isset($info['file']) && !isset($info['path'])) {
-        $result[$hook]['file'] = $path . '/' . $info['file'];
-        include_once DRUPAL_ROOT . '/' . $result[$hook]['file'];
-      }
-      elseif (isset($info['file']) && isset($info['path'])) {
-        include_once DRUPAL_ROOT . '/' . $info['path'] . '/' . $info['file'];
-      }
 
       if (isset($info['template']) && !isset($info['path'])) {
         $result[$hook]['template'] = $path . '/' . $info['template'];
@@ -345,10 +333,10 @@ function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
         }
 
         foreach ($prefixes as $prefix) {
-          if (function_exists($prefix . '_preprocess')) {
+          if (drupal_function_exists($prefix . '_preprocess')) {
             $info['preprocess functions'][] = $prefix . '_preprocess';
           }
-          if (function_exists($prefix . '_preprocess_' . $hook)) {
+          if (drupal_function_exists($prefix . '_preprocess_' . $hook)) {
             $info['preprocess functions'][] = $prefix . '_preprocess_' . $hook;
           }
         }
@@ -377,10 +365,10 @@ function _theme_process_registry(&$cache, $name, $type, $theme, $path) {
         if (!isset($info['preprocess functions'])) {
           $cache[$hook]['preprocess functions'] = array();
         }
-        if (function_exists($name . '_preprocess')) {
+        if (drupal_function_exists($name . '_preprocess')) {
           $cache[$hook]['preprocess functions'][] = $name . '_preprocess';
         }
-        if (function_exists($name . '_preprocess_' . $hook)) {
+        if (drupal_function_exists($name . '_preprocess_' . $hook)) {
           $cache[$hook]['preprocess functions'][] = $name . '_preprocess_' . $hook;
         }
         // Ensure uniqueness.
@@ -614,14 +602,6 @@ function theme() {
   // point path_to_theme() to the currently used theme path:
   $theme_path = $info['theme path'];
 
-  // Include a file if the theme function or preprocess function is held elsewhere.
-  if (!empty($info['file'])) {
-    $include_file = $info['file'];
-    if (isset($info['path'])) {
-      $include_file = $info['path'] . '/' . $include_file;
-    }
-    include_once DRUPAL_ROOT . '/' . $include_file;
-  }
   if (isset($info['function'])) {
     // The theme call is a function.
     if (drupal_function_exists($info['function'])) {
diff --git modules/aggregator/aggregator.module modules/aggregator/aggregator.module
index 77398ba..54d6aa1 100644
--- modules/aggregator/aggregator.module
+++ modules/aggregator/aggregator.module
@@ -36,16 +36,13 @@ function aggregator_theme() {
   return array(
     'aggregator_wrapper' => array(
       'arguments' => array('content' => NULL),
-      'file' => 'aggregator.pages.inc',
       'template' => 'aggregator-wrapper',
     ),
     'aggregator_categorize_items' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'aggregator.pages.inc',
     ),
     'aggregator_feed_source' => array(
       'arguments' => array('feed' => NULL),
-      'file' => 'aggregator.pages.inc',
       'template' => 'aggregator-feed-source',
     ),
     'aggregator_block_item' => array(
@@ -53,26 +50,21 @@ function aggregator_theme() {
     ),
     'aggregator_summary_items' => array(
       'arguments' => array('summary_items' => NULL, 'source' => NULL),
-      'file' => 'aggregator.pages.inc',
       'template' => 'aggregator-summary-items',
     ),
     'aggregator_summary_item' => array(
       'arguments' => array('item' => NULL),
-      'file' => 'aggregator.pages.inc',
       'template' => 'aggregator-summary-item',
     ),
     'aggregator_item' => array(
       'arguments' => array('item' => NULL),
-      'file' => 'aggregator.pages.inc',
       'template' => 'aggregator-item',
     ),
     'aggregator_page_opml' => array(
       'arguments' => array('feeds' => NULL),
-      'file' => 'aggregator.pages.inc',
     ),
     'aggregator_page_rss' => array(
       'arguments' => array('feeds' => NULL, 'category' => NULL),
-      'file' => 'aggregator.pages.inc',
     ),
   );
 }
diff --git modules/block/block.module modules/block/block.module
index 35b9035..26812e9 100644
--- modules/block/block.module
+++ modules/block/block.module
@@ -98,7 +98,6 @@ function block_theme() {
     ),  
     'block_admin_display_form' => array(
       'template' => 'block-admin-display-form',
-      'file' => 'block.admin.inc',
       'arguments' => array('form' => NULL),
     ),
   );
diff --git modules/filter/filter.module modules/filter/filter.module
index 7511353..beadd8b 100644
--- modules/filter/filter.module
+++ modules/filter/filter.module
@@ -47,15 +47,12 @@ function filter_theme() {
   return array(
     'filter_admin_overview' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'filter.admin.inc',
     ),
     'filter_admin_order' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'filter.admin.inc',
     ),
     'filter_tips' => array(
       'arguments' => array('tips' => NULL, 'long' => FALSE),
-      'file' => 'filter.pages.inc',
     ),
     'filter_tips_more_info' => array(
       'arguments' => array(),
diff --git modules/menu/menu.module modules/menu/menu.module
index 279865c..e55b659 100644
--- modules/menu/menu.module
+++ modules/menu/menu.module
@@ -141,11 +141,9 @@ function menu_menu() {
 function menu_theme() {
   return array(
     'menu_overview_form' => array(
-      'file' => 'menu.admin.inc',
       'arguments' => array('form' => NULL),
     ),
     'menu_admin_overview' => array(
-      'file' => 'menu.admin.inc',
       'arguments' => array('title' => NULL, 'name' => NULL, 'description' => NULL),
     ),
   );
diff --git modules/node/node.module modules/node/node.module
index 605c843..44d4417 100644
--- modules/node/node.module
+++ modules/node/node.module
@@ -107,27 +107,21 @@ function node_theme() {
     ),
     'node_filter_form' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'node.admin.inc',
     ),
     'node_filters' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'node.admin.inc',
     ),
     'node_admin_nodes' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'node.admin.inc',
     ),
     'node_add_list' => array(
       'arguments' => array('content' => NULL),
-      'file' => 'node.pages.inc',
     ),
     'node_form' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'node.pages.inc',
     ),
     'node_preview' => array(
       'arguments' => array('node' => NULL),
-      'file' => 'node.pages.inc',
     ),
     'node_log_message' => array(
       'arguments' => array('log' => NULL),
diff --git modules/profile/profile.module modules/profile/profile.module
index a816739..a731deb 100644
--- modules/profile/profile.module
+++ modules/profile/profile.module
@@ -67,7 +67,6 @@ function profile_theme() {
     ),
     'profile_admin_overview' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'profile.admin.inc',
     )
   );
 }
diff --git modules/search/search.module modules/search/search.module
index 6af30bd..a3e1666 100644
--- modules/search/search.module
+++ modules/search/search.module
@@ -126,12 +126,10 @@ function search_theme() {
     ),
     'search_result' => array(
       'arguments' => array('result' => NULL, 'type' => NULL),
-      'file' => 'search.pages.inc',
       'template' => 'search-result',
     ),
     'search_results' => array(
       'arguments' => array('results' => NULL, 'type' => NULL),
-      'file' => 'search.pages.inc',
       'template' => 'search-results',
     ),
     'search_results_listing' => array(
diff --git modules/simpletest/simpletest.module modules/simpletest/simpletest.module
index 798e917..ad4e6b6 100644
--- modules/simpletest/simpletest.module
+++ modules/simpletest/simpletest.module
@@ -70,11 +70,9 @@ function simpletest_theme() {
   return array(
     'simpletest_test_table' => array(
       'arguments' => array('table' => NULL),
-      'file' => 'simpletest.pages.inc',
     ),
     'simpletest_result_summary' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'simpletest.pages.inc',
     ),
   );
 }
diff --git modules/system/system.api.php modules/system/system.api.php
index fd0bfc8..0315160 100644
--- modules/system/system.api.php
+++ modules/system/system.api.php
@@ -580,14 +580,6 @@ function hook_perm() {
  *   used as the default value if not specified to the theme() function.
  *   These arguments must be in the same order that they will be given to
  *   the theme() function.
- * - file: The file the implementation resides in. This file will be included
- *   prior to the theme being rendered, to make sure that the function or
- *   preprocess function (as needed) is actually loaded; this makes it possible
- *   to split theme functions out into separate files quite easily.
- * - path: Override the path of the file to be used. Ordinarily the module or
- *   theme path will be used, but if the file will not be in the default path,
- *   include it here. This path should be relative to the Drupal root
- *   directory.
  * - template: If specified, this theme implementation is a template, and this
  *   is the template file <b>without an extension</b>. Do not put .tpl.php
  *   on this file; that extension will be added automatically by the default
@@ -692,7 +684,6 @@ function hook_theme($existing, $type, $theme, $path) {
  *      'account' => NULL,
  *    ),
  *    'template' => 'modules/user/user-profile',
- *    'file' => 'modules/user/user.pages.inc',
  *    'type' => 'module',
  *    'theme path' => 'modules/user',
  *    'theme paths' => array(
diff --git modules/system/system.module modules/system/system.module
index 58aa9b9..b5f5090 100644
--- modules/system/system.module
+++ modules/system/system.module
@@ -121,43 +121,33 @@ function system_theme() {
   return array_merge(drupal_common_theme(), array(
     'system_theme_select_form' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'system_themes_form' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'system_modules_fieldset' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'system_modules_incompatible' => array(
       'arguments' => array('message' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'system_modules_uninstall' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'status_report' => array(
       'arguments' => array('requirements' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'admin_page' => array(
       'arguments' => array('blocks' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'admin_block' => array(
       'arguments' => array('block' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'admin_block_content' => array(
       'arguments' => array('content' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'system_admin_by_module' => array(
       'arguments' => array('menu_items' => NULL),
-      'file' => 'system.admin.inc',
     ),
     'system_powered_by' => array(
       'arguments' => array('image_path' => NULL),
diff --git modules/trigger/trigger.module modules/trigger/trigger.module
index 480e74e..114a6cc 100644
--- modules/trigger/trigger.module
+++ modules/trigger/trigger.module
@@ -149,7 +149,6 @@ function trigger_theme() {
   return array(
     'trigger_display' => array(
       'arguments' => array('element'),
-      'file' => 'trigger.admin.inc',
     ),
   );
 }
diff --git modules/user/user.module modules/user/user.module
index ecf36ee..f02c775 100644
--- modules/user/user.module
+++ modules/user/user.module
@@ -42,40 +42,32 @@ function user_theme() {
     'user_profile' => array(
       'arguments' => array('elements' => NULL),
       'template' => 'user-profile',
-      'file' => 'user.pages.inc',
     ),
     'user_profile_category' => array(
       'arguments' => array('element' => NULL),
       'template' => 'user-profile-category',
-      'file' => 'user.pages.inc',
     ),
     'user_profile_item' => array(
       'arguments' => array('element' => NULL),
       'template' => 'user-profile-item',
-      'file' => 'user.pages.inc',
     ),
     'user_list' => array(
       'arguments' => array('users' => NULL, 'title' => NULL),
     ),
     'user_admin_perm' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'user.admin.inc',
     ),
     'user_admin_new_role' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'user.admin.inc',
     ),
     'user_admin_account' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'user.admin.inc',
     ),
     'user_filter_form' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'user.admin.inc',
     ),
     'user_filters' => array(
       'arguments' => array('form' => NULL),
-      'file' => 'user.admin.inc',
     ),
     'user_signature' => array(
       'arguments' => array('signature' => NULL),
