Index: wp-includes/classes.php
===================================================================
--- wp-includes/classes.php	(revision 15434)
+++ wp-includes/classes.php	(working copy)
@@ -274,7 +274,8 @@
 				$this->query_vars[$wpvar] = $perma_query_vars[$wpvar];
 
 			if ( !empty( $this->query_vars[$wpvar] ) ) {
-				$this->query_vars[$wpvar] = (string) $this->query_vars[$wpvar];
+				!is_array( $this->query_vars[$wpvar] ) && ( $this->query_vars[$wpvar] = array( $this->query_vars[$wpvar] ) );
+				$this->query_vars[$wpvar] = array_map( 'strval', $this->query_vars[$wpvar] );
 				if ( isset( $taxonomy_query_vars[$wpvar] ) ) {
 					$this->query_vars['taxonomy'] = $taxonomy_query_vars[$wpvar];
 					$this->query_vars['term'] = $this->query_vars[$wpvar];
@@ -288,8 +289,8 @@
 		// Limit publicly queried post_types to those that are publicly_queryable
 		if ( isset( $this->query_vars['post_type']) ) {
 			$queryable_post_types =  get_post_types( array('publicly_queryable' => true) );
-			if ( ! in_array( $this->query_vars['post_type'], $queryable_post_types ) )
-				unset( $this->query_vars['post_type'] );
+			!is_array( $this->query_vars['post_type'] ) && ( $this->query_vars['post_type'] = array( $this->query_vars['post_type'] ) );
+			$this->query_vars['post_type'] = array_intersect( $this->query_vars['post_type'], $queryable_post_types );
 		}
 
 		foreach ( (array) $this->private_query_vars as $var) {
