Index: includes/theme.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/theme.inc,v
retrieving revision 1.621
diff -u -p -r1.621 theme.inc
--- includes/theme.inc	28 Oct 2010 02:27:08 -0000	1.621
+++ includes/theme.inc	28 Oct 2010 17:09:33 -0000
@@ -402,7 +402,14 @@ function _theme_process_registry(&$cache
       // that themes don't need to specify this information, since the module
       // that registered the theme hook already has.
       foreach (array('variables', 'render element', 'pattern', 'base hook') as $key) {
-        if (!isset($info[$key]) && isset($cache[$hook][$key])) {
+        // @todo The Drupal convention is to use the faster isset() instead of
+        //   the slower array_key_exists() unless there's a good reason to treat
+        //   an explicitly set NULL value differently than an unspecified value.
+        //   array_key_exists() is retained here for Drupal 7, but for Drupal 8,
+        //   evaluate whether there's a use-case for a later hook_theme()
+        //   implementation to reset to NULL a value that was specified by an
+        //   earlier hook_theme() implementation.
+        if (!array_key_exists($key, $info) && isset($cache[$hook][$key])) {
           $result[$hook][$key] = $cache[$hook][$key];
         }
       }
