Index: wp-includes/query.php
===================================================================
--- wp-includes/query.php	(revision 22244)
+++ wp-includes/query.php	(working copy)
@@ -2799,7 +2799,9 @@
 	function set_found_posts( $q, $limits ) {
 		global $wpdb;
 
-		if ( $q['no_found_rows'] || ! $this->posts )
+		// Bail if posts is an empty array. Continue if posts is an empty string
+		// null, or false to accommodate caching plugins that fill posts later.
+		if ( $q['no_found_rows'] || ( is_array( $this->posts ) && ! $this->posts ) )
 			return;
 
 		if ( ! empty( $limits ) )
