Index: wp-includes/query.php
===================================================================
--- wp-includes/query.php	(revision 18542)
+++ wp-includes/query.php	(working copy)
@@ -1618,20 +1618,34 @@
 				$this->queried_object_id = (int) $this->queried_object->ID;
 			else
 				unset($this->queried_object);
-
-			if  ( 'page' == get_option('show_on_front') && isset($this->queried_object_id) && $this->queried_object_id == get_option('page_for_posts') ) {
-				$this->is_page = false;
-				$this->is_home = true;
-				$this->is_posts_page = true;
-			}
 		}
 
-		if ( $qv['page_id'] ) {
-			if  ( 'page' == get_option('show_on_front') && $qv['page_id'] == get_option('page_for_posts') ) {
-				$this->is_page = false;
-				$this->is_home = true;
-				$this->is_posts_page = true;
+		if  ( 'page' == get_option('show_on_front') && ( 
+														( $qv['page_id'] && $qv['page_id'] == get_option('page_for_posts') ) ||
+														( '' != $qv['pagename'] && $this->queried_object_id == get_option('page_for_posts') )
+														) ) {
+			$this->is_page = false;
+			$this->is_singular = false;
+			$this->is_home = true;
+			$this->is_posts_page = true;
+
+			$this->parse_tax_query( $qv );
+
+			foreach ( $this->tax_query->queries as $tax_query ) {
+				if ( 'NOT IN' != $tax_query['operator'] ) {
+					switch ( $tax_query['taxonomy'] ) {
+						case 'category':
+							$this->is_category = true;
+							break;
+						case 'post_tag':
+							$this->is_tag = true;
+							break;
+						default:
+							$this->is_tax = true;
+					}
+				}
 			}
+			unset( $tax_query );
 		}
 
 		if ( !empty($qv['post_type']) ) {
