diff --git wp-includes/query.php wp-includes/query.php
index 04286aa..00c88c5 100644
--- wp-includes/query.php
+++ wp-includes/query.php
@@ -3140,7 +3140,9 @@ class WP_Query {
 
 		$author = (array) $author;
 
-		if ( in_array( $author_obj->ID, $author ) )
+		if ( $author_obj->ID > 0 && in_array( $author_obj->ID, $author ) )
+			return true;
+		elseif ( in_array( $author_obj->ID, $author, true ) )
 			return true;
 		elseif ( in_array( $author_obj->nickname, $author ) )
 			return true;
@@ -3172,7 +3174,9 @@ class WP_Query {
 
 		$category = (array) $category;
 
-		if ( in_array( $cat_obj->term_id, $category ) )
+		if ( $cat_obj->term_id > 0 && in_array( $cat_obj->term_id, $category ) )
+			return true;
+		elseif ( in_array( $cat_obj->term_id, $category, true ) )
 			return true;
 		elseif ( in_array( $cat_obj->name, $category ) )
 			return true;
@@ -3399,11 +3403,13 @@ class WP_Query {
 
 		$page = (array) $page;
 
-		if ( in_array( $page_obj->ID, $page ) )
+		if ( $page_obj->ID > 0 && in_array( $page_obj->ID, $page ) )
 			return true;
+		elseif ( in_array( $page_obj->ID, $page, true ) )
+				return true;
 		elseif ( in_array( $page_obj->post_title, $page ) )
 			return true;
-		else if ( in_array( $page_obj->post_name, $page ) )
+		elseif ( in_array( $page_obj->post_name, $page ) )
 			return true;
 
 		return false;
@@ -3480,7 +3486,9 @@ class WP_Query {
 
 		$post = (array) $post;
 
-		if ( in_array( $post_obj->ID, $post ) )
+		if ( $post_obj->ID > 0 && in_array( $post_obj->ID, $post ) )
+			return true;
+		elseif ( in_array( $post_obj->ID, $post, true ) )
 			return true;
 		elseif ( in_array( $post_obj->post_title, $post ) )
 			return true;
