Index: wp-includes/general-template.php
===================================================================
--- wp-includes/general-template.php	(revision 19315)
+++ wp-includes/general-template.php	(working copy)
@@ -24,14 +24,8 @@
 function get_header( $name = null ) {
 	do_action( 'get_header', $name );
 
-	$templates = array();
-	if ( isset($name) )
-		$templates[] = "header-{$name}.php";
-
-	$templates[] = 'header.php';
-
 	// Backward compat code will be removed in a future release
-	if ('' == locate_template($templates, true))
+	if ( '' == get_template_part( 'header', $name, true ) )
 		load_template( ABSPATH . WPINC . '/theme-compat/header.php');
 }
 
@@ -53,14 +47,8 @@
 function get_footer( $name = null ) {
 	do_action( 'get_footer', $name );
 
-	$templates = array();
-	if ( isset($name) )
-		$templates[] = "footer-{$name}.php";
-
-	$templates[] = 'footer.php';
-
 	// Backward compat code will be removed in a future release
-	if ('' == locate_template($templates, true))
+	if ( '' == get_template_part( 'footer', $name, true ) )
 		load_template( ABSPATH . WPINC . '/theme-compat/footer.php');
 }
 
@@ -82,14 +70,8 @@
 function get_sidebar( $name = null ) {
 	do_action( 'get_sidebar', $name );
 
-	$templates = array();
-	if ( isset($name) )
-		$templates[] = "sidebar-{$name}.php";
-
-	$templates[] = 'sidebar.php';
-
 	// Backward compat code will be removed in a future release
-	if ('' == locate_template($templates, true))
+	if ( '' == get_template_part( 'sidebar', $name, true ) )
 		load_template( ABSPATH . WPINC . '/theme-compat/sidebar.php');
 }
 
@@ -116,7 +98,7 @@
  * @param string $slug The slug name for the generic template.
  * @param string $name The name of the specialised template.
  */
-function get_template_part( $slug, $name = null ) {
+function get_template_part( $slug, $name = null, $require_once = false ) {
 	do_action( "get_template_part_{$slug}", $slug, $name );
 
 	$templates = array();
@@ -125,7 +107,7 @@
 
 	$templates[] = "{$slug}.php";
 
-	locate_template($templates, true, false);
+	locate_template($templates, true, $require_once);
 }
 
 /**
