Index: trunk/wp-includes/post-template.php
===================================================================
--- trunk/wp-includes/post-template.php	(revision 10016)
+++ trunk/wp-includes/post-template.php	(working copy)
@@ -449,7 +449,7 @@
 						else
 							$output .= '<a href="' . trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged') . '">';
 					}
-					
+
 				}
 				$output .= $link_before;
 				$output .= $j;
@@ -666,6 +666,8 @@
 
 	$menu = '';
 
+	$list_args = $args;
+
 	// Show Home in the menu
 	if ( isset($args['show_home']) && ! empty($args['show_home']) ) {
 		if ( true === $args['show_home'] || '1' === $args['show_home'] || 1 === $args['show_home'] )
@@ -673,12 +675,20 @@
 		else
 			$text = $args['show_home'];
 		$class = '';
-		if ( is_home() && !is_paged() )
+		if ( is_front_page() && !is_paged() )
 			$class = 'class="current_page_item"';
 		$menu .= '<li ' . $class . '><a href="' . get_option('home') . '">' . $link_before . $text . $link_after . '</a></li>';
+		// If the front page is a page, add it to the exclude list
+		if (get_option('show_on_front') == 'page') {
+			if ( !empty( $list_args['exclude'] ) ) {
+				$list_args['exclude'] .= ',';
+			} else {
+				$list_args['exclude'] = '';
+			}
+			$list_args['exclude'] = get_option('page_on_front');
+		}
 	}
 
-	$list_args = $args;
 	$list_args['echo'] = false;
 	$list_args['title_li'] = '';
 	$menu .= str_replace( array( "\r", "\n", "\t" ), '', wp_list_pages($list_args) );
@@ -687,7 +697,7 @@
 		$menu = '<ul>' . $menu . '</ul>';
 
 	$menu = '<div id="' . $args['menu_class'] . '">' . $menu . "</div>\n";
-	$menu = apply_filters( 'wp_page_menu', $menu, $args ); 
+	$menu = apply_filters( 'wp_page_menu', $menu, $args );
 	if ( $args['echo'] )
 		echo $menu;
 	else
