Index: wp-includes/template-loader.php
===================================================================
--- wp-includes/template-loader.php	(revision 17231)
+++ wp-includes/template-loader.php	(working copy)
@@ -19,29 +19,31 @@
 endif;
 
 if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) :
-	$template = false;
-	if     ( is_404()            && $template = get_404_template()            ) :
-	elseif ( is_search()         && $template = get_search_template()         ) :
-	elseif ( is_tax()            && $template = get_taxonomy_template()       ) :
-	elseif ( is_front_page()     && $template = get_front_page_template()     ) :
-	elseif ( is_home()           && $template = get_home_template()           ) :
-	elseif ( is_attachment()     && $template = get_attachment_template()     ) :
-		remove_filter('the_content', 'prepend_attachment');
-	elseif ( is_single()         && $template = get_single_template()         ) :
-	elseif ( is_page()           && $template = get_page_template()           ) :
-	elseif ( is_category()       && $template = get_category_template()       ) :
-	elseif ( is_tag()            && $template = get_tag_template()            ) :
-	elseif ( is_author()         && $template = get_author_template()         ) :
-	elseif ( is_date()           && $template = get_date_template()           ) :
-	elseif ( is_archive()        && $template = get_archive_template()        ) :
-	elseif ( is_comments_popup() && $template = get_comments_popup_template() ) :
-	elseif ( is_paged()          && $template = get_paged_template()          ) :
+	if ( current_theme_supports('theme-templates') ) :
+		do_action('theme_template');
 	else :
-		$template = get_index_template();
+		$template = false;
+		if     ( is_404()            && $template = get_404_template()            ) :
+		elseif ( is_search()         && $template = get_search_template()         ) :
+		elseif ( is_tax()            && $template = get_taxonomy_template()       ) :
+		elseif ( is_front_page()     && $template = get_front_page_template()     ) :
+		elseif ( is_home()           && $template = get_home_template()           ) :
+		elseif ( is_attachment()     && $template = get_attachment_template()     ) :
+			remove_filter('the_content', 'prepend_attachment');
+		elseif ( is_single()         && $template = get_single_template()         ) :
+		elseif ( is_page()           && $template = get_page_template()           ) :
+		elseif ( is_category()       && $template = get_category_template()       ) :
+		elseif ( is_tag()            && $template = get_tag_template()            ) :
+		elseif ( is_author()         && $template = get_author_template()         ) :
+		elseif ( is_date()           && $template = get_date_template()           ) :
+		elseif ( is_archive()        && $template = get_archive_template()        ) :
+		elseif ( is_comments_popup() && $template = get_comments_popup_template() ) :
+		elseif ( is_paged()          && $template = get_paged_template()          ) :
+		else :
+			$template = get_index_template();
+		endif;
+		if ( $template = apply_filters( 'template_include', $template ) )
+			include( $template );
+		return;
 	endif;
-	if ( $template = apply_filters( 'template_include', $template ) )
-		include( $template );
-	return;
-endif;
-
-?>
+endif;
\ No newline at end of file
