Index: trunk/wp-includes/template-loader.php
===================================================================
--- trunk/wp-includes/template-loader.php	(revision 7765)
+++ trunk/wp-includes/template-loader.php	(working copy)
@@ -23,6 +23,9 @@
 	} else if ( is_tax() && $template = get_taxonomy_template()) {
 		include($template);
 		return;
+	} else if ( is_front_page() && $template = get_front_page_template() ) {
+		include($template);
+		return;
 	} else if ( is_home() && $template = get_home_template() ) {
 		include($template);
 		return;
Index: trunk/wp-includes/theme.php
===================================================================
--- trunk/wp-includes/theme.php	(revision 7765)
+++ trunk/wp-includes/theme.php	(working copy)
@@ -399,6 +399,24 @@
 	return get_query_template('date');
 }
 
+function get_front_page_template() {
+	$template = '';
+
+	if ( is_home() ) {
+		if ( file_exists(TEMPLATEPATH . "/front-page.php") )
+			$template = TEMPLATEPATH . "/front-page.php";
+		else
+			$template = get_home_path();
+	} else {
+		$template = get_page_template();
+		if ( in_array($template, array('page.php', '')) && file_exists(TEMPLATEPATH . "/front-page.php") ) {
+			$template = TEMPLATEPATH . "/front-page.php";
+		}
+	}
+
+	return apply_filters('front_page_template', $template);
+}
+
 function get_home_template() {
 	$template = '';
 
