Index: query.php
===================================================================
--- query.php	(revision 11938)
+++ query.php	(working copy)
@@ -1486,8 +1486,12 @@
 			}
 		}
 
-		if ( !empty($qv['post_type']) )
-			$qv['post_type'] = sanitize_user($qv['post_type'], true);
+		if ( !empty($qv['post_type']) )	{
+			if(is_array($qv['post_type']))
+				$qv['post_type'] = array_map('sanitize_user', $qv['post_type'], array(true));
+			else
+				$qv['post_type'] = sanitize_user($qv['post_type'], true);
+		}
 
 		if ( !empty($qv['post_status']) )
 			$qv['post_status'] = preg_replace('|[^a-z0-9_,-]|', '', $qv['post_status']);
@@ -2072,6 +2076,8 @@
 
 		if ( 'any' == $post_type ) {
 			$where .= " AND $wpdb->posts.post_type != 'revision'";
+		} elseif ( !empty( $post_type ) && is_array( $post_type ) ) {
+			$where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $post_type) . "')";
 		} elseif ( ! empty( $post_type ) ) {
 			$where .= " AND $wpdb->posts.post_type = '$post_type'";
 		} elseif ( $this->is_attachment ) {
