Index: wp-includes/query.php
===================================================================
--- wp-includes/query.php	(revisione 13173)
+++ wp-includes/query.php	(copia locale)
@@ -1192,8 +1192,10 @@
 			'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and');
 
 		foreach ( $array_keys as $key ) {
-			if ( !isset($array[$key]))
+			if ( !isset($array[$key])) {
+				if ( $key == 'post__in' ) continue;
 				$array[$key] = array();
+			}
 		}
 		return $array;
 	}
@@ -1720,6 +1722,9 @@
 		// If a post number is specified, load that post
 		if ( $q['p'] ) {
 			$where .= " AND {$wpdb->posts}.ID = " . $q['p'];
+		} elseif ( is_array($q['post__in']) && empty($q['post__in']) ) {
+			$where = " AND {$wpdb->posts}.ID = NULL";
+			$this->set_404();
 		} elseif ( $q['post__in'] ) {
 			$post__in = implode(',', array_map( 'absint', $q['post__in'] ));
 			$where .= " AND {$wpdb->posts}.ID IN ($post__in)";
