diff --git a/includes/theme.inc b/includes/theme.inc
index 9bd7062..6450bb4 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -996,12 +996,16 @@ function drupal_find_theme_functions($cache, $prefixes) {
         if ($matches) {
           foreach ($matches as $match) {
             $new_hook = str_replace($prefix . '_', '', $match);
-            $arg_name = isset($info['variables']) ? 'variables' : 'render element';
             $implementations[$new_hook] = array(
-              'function' => $match,
-              $arg_name => $info[$arg_name],
+              'function'  => $match,
               'base hook' => $hook,
             );
+            // Copy required meta from base hook.
+            foreach (array('render element', 'variables', 'includes') as $info_key) {
+              if (isset($info[$info_key])) {
+                $implementations[$new_hook][$info_key] = $info[$info_key];
+              }
+            }
           }
         }
       }
@@ -1098,13 +1102,18 @@ function drupal_find_theme_templates($cache, $extension, $path) {
         foreach ($matches as $match) {
           $file = substr($match, 0, strpos($match, '.'));
           // Put the underscores back in for the hook name and register this pattern.
-          $arg_name = isset($info['variables']) ? 'variables' : 'render element';
-          $implementations[strtr($file, '-', '_')] = array(
+          $new_hook = strtr($file, '-', '_');
+          $implementations[$new_hook] = array(
             'template' => $file,
             'path' => dirname($files[$match]->uri),
-            $arg_name => $info[$arg_name],
             'base hook' => $hook,
           );
+          // Copy required meta from base hook.
+          foreach (array('render element', 'variables', 'includes') as $info_key) {
+            if (isset($info[$info_key])) {
+              $implementations[$new_hook][$info_key] = $info[$info_key];
+            }
+          }
         }
       }
     }
