Index: wp-includes/meta.php
===================================================================
--- wp-includes/meta.php	(revision 19667)
+++ wp-includes/meta.php	(working copy)
@@ -707,7 +707,27 @@
 		$join = array();
 		$where = array();
 
+		$key_only_queries = array();
+		$queries = array();
+		
+		// Split out the meta_key only queries (we can only do this for OR)
 		foreach ( $this->queries as $k => $q ) {
+			if ( $this->relation == 'OR' && ! isset( $q['value'] ) && ! empty( $q['key'] ) )
+				$key_only_queries[$k] = $q;
+			
+			else
+				$queries[$k] = $q;
+		}
+		
+		// Specify all the meta_key only queries in one go
+		if ( $key_only_queries ) {
+			$join[]  = "INNER JOIN $meta_table ON $primary_table.$primary_id_column = $meta_table.$meta_id_column";
+			
+			foreach ( $key_only_queries as $key => $q )
+				$where["key-only-$key"] = $wpdb->prepare( "$meta_table.meta_key = %s", trim( $q['key'] ) );
+		}
+						
+		foreach ( $queries as $k => $q ) {
 			$meta_key = isset( $q['key'] ) ? trim( $q['key'] ) : '';
 			$meta_type = isset( $q['type'] ) ? strtoupper( $q['type'] ) : 'CHAR';
 
