Index: query.php
===================================================================
--- query.php	(revision 22361)
+++ query.php	(working copy)
@@ -2772,18 +2772,20 @@
 		if ( !$q['suppress_filters'] )
 			$this->posts = apply_filters_ref_array('the_posts', array( $this->posts, &$this ) );
 
-		$this->post_count = count( $this->posts );
-
 		// Ensure that any posts added/modified via one of the filters above are
 		// of the type WP_Post and are filtered.
-		if ( $this->posts )
+		if ( $this->posts ) {
+			$this->post_count = count( $this->posts );
+			
 			$this->posts = array_map( 'get_post', $this->posts );
 
-		if ( $q['cache_results'] )
-			update_post_caches($this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache']);
+			if ( $q['cache_results'] )
+				update_post_caches($this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache']);
 
-		if ( $this->post_count > 0 ) {
-			$this->post = $this->posts[0];
+			$this->post = reset( $this->posts );			
+		} else {
+			$this->post_count = 0;
+			$this->posts = array();
 		}
 
 		return $this->posts;
