--- node_page/node_page.module
+++ node_page/node_page.module
@@ -132,15 +132,15 @@ function node_page_form_node_type_form_alter(&$form, &$from_state) {
   }
 }
 
-function _get_page_template_files($directory, $options) {
-  
+function _get_page_template_files($directory) {
+  $options = array();
 	$handler = opendir($directory);
-	
+
   while ($file = readdir($handler)) {
     if(is_dir($directory . $file) && drupal_substr($file, 0, 1) != '.'){
-       $options = array_merge($options, _get_page_template_files($directory . $file . '/', $options));
+       $options = array_merge($options, _get_page_template_files($directory . $file . '/'));
     }
-    else if (drupal_substr($file, strlen($file) - 8) == '.tpl.php')
+    else if (drupal_substr($file, strlen($file) - 12) == 'page.tpl.php')
 		{
 			$name = drupal_substr($file, 0, -8);  // name without .tpl.php
 			$options[$name] = $name;
@@ -152,12 +152,33 @@ function _get_page_template_files($directory, $options) {
 }
 
 function _page_templates() {
-  $theme = variable_get('theme_default', 'garland');
-  $theme_path = drupal_get_path('theme', $theme) .'/';
-	
+  $theme_list = list_themes();
+
+  if (function_exists('domain_theme_lookup')) {
+    $domain = domain_get_domain();
+    $domain_id = $domain['domain_id'];
+    $domain_theme = domain_theme_lookup($domain_id);
+    if (!empty($domain_theme)) {
+      $site_theme = $domain_theme['theme'];
+    }
+  }
+  
+  if (empty($site_theme)) {
+    $site_theme = variable_get('theme_default', 'garland');
+  }
+
+  $theme_lineage = array_keys($theme_list[$site_theme]->base_themes);
+  $theme_lineage[] = $site_theme;
+
   $options = array('default' => 'default');
-	
-  return _get_page_template_files($theme_path, $options);
+  foreach($theme_lineage as $theme) {
+    $theme_path = drupal_get_path('theme', $theme);
+    if (!empty($theme_path)) {
+      $options = array_merge($options, _get_page_template_files($theme_path . '/'));
+    }
+  }
+
+  return $options;
 }
 
 /**
