--- node_page/node_page.module
+++ node_page/node_page.module
@@ -132,20 +132,51 @@ function node_page_form_node_type_form_alter(&$form, &$from_state) {
   }
 }
 
-function _page_templates() {
-
-  $theme = variable_get('theme_default', 'garland');
-  $theme_path = drupal_get_path('theme', $theme) .'/';
-  $options = array('default' => 'default');
+function _get_page_template_files($directory) {
+  $options = array();
+	$handler = opendir($directory);
 
-  $handler = opendir($theme_path);
   while ($file = readdir($handler)) {
-    if ($file != '.' && $file != '..' && drupal_substr($file, 0, 4) == 'page') {
-      $name = drupal_substr($file, 0, -8);  // name without .tpl.php
-      $options[$name] = $name;
+    if(is_dir($directory . $file) && drupal_substr($file, 0, 1) != '.'){
+       $options = array_merge($options, _get_page_template_files($directory . $file . '/'));
     }
+    else if (drupal_substr($file, strlen($file) - 12) == 'page.tpl.php')
+		{
+			$name = drupal_substr($file, 0, -8);  // name without .tpl.php
+			$options[$name] = $name;
+		}
   }
   closedir($handler);
+	
+	return $options;
+}
+
+function _page_templates() {
+  $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');
+  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;
 }
