Index: tests/phpunit/tests/query/results.php
===================================================================
--- tests/phpunit/tests/query/results.php	(revision 25231)
+++ tests/phpunit/tests/query/results.php	(working copy)
@@ -369,4 +369,23 @@
 			'child-two',
 		), wp_list_pluck( $posts, 'post_title' ) );
 	}
+
+	function test_exlude_from_search_empty() {
+		global $wp_post_types;
+		foreach ( array_keys( $wp_post_types ) as $slug )
+			$wp_post_types[$slug]->exclude_from_search = true;
+
+		$posts = $this->q->query( array( 'post_type' => 'any' ) );
+
+		$this->assertEmpty( $posts );
+		$this->assertRegExp( '#AND 1=0#', $this->q->request );
+
+		foreach ( array_keys( $wp_post_types ) as $slug )
+			$wp_post_types[$slug]->exclude_from_search = false;
+
+		$posts2 = $this->q->query( array( 'post_type' => 'any' ) );
+
+		$this->assertNotEmpty( $posts2 );
+		$this->assertNotRegExp( '#AND 1=0#', $this->q->request );
+	}
 }
Index: src/wp-includes/query.php
===================================================================
--- src/wp-includes/query.php	(revision 25238)
+++ src/wp-includes/query.php	(working copy)
@@ -2455,7 +2455,9 @@
 
 		if ( 'any' == $post_type ) {
 			$in_search_post_types = get_post_types( array('exclude_from_search' => false) );
-			if ( ! empty( $in_search_post_types ) )
+			if ( empty( $in_search_post_types ) )
+				$where .= ' AND 1=0 ';
+			else	
 				$where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $in_search_post_types ) . "')";
 		} elseif ( !empty( $post_type ) && is_array( $post_type ) ) {
 			$where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $post_type) . "')";
