Index: wp-includes/query.php
===================================================================
--- wp-includes/query.php	(revision 15497)
+++ wp-includes/query.php	(working copy)
@@ -1877,7 +1877,7 @@
 		} else {
 			$q['cat'] = ''.urldecode($q['cat']).'';
 			$q['cat'] = addslashes_gpc($q['cat']);
-			$cat_array = preg_split('/[,\s]+/', $q['cat']);
+			$cat_array = preg_split('/[,\r\n\t ]+/', $q['cat']);
 			$q['cat'] = '';
 			$req_cats = array();
 			foreach ( (array) $cat_array as $cat ) {
@@ -1946,13 +1946,13 @@
 		// Tags
 		if ( '' != $q['tag'] ) {
 			if ( strpos($q['tag'], ',') !== false ) {
-				$tags = preg_split('/[,\s]+/', $q['tag']);
+				$tags = preg_split('/[,\r\n\t ]+/', $q['tag']);
 				foreach ( (array) $tags as $tag ) {
 					$tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
 					$q['tag_slug__in'][] = $tag;
 				}
-			} else if ( preg_match('/[+\s]+/', $q['tag']) || !empty($q['cat']) ) {
-				$tags = preg_split('/[+\s]+/', $q['tag']);
+			} else if ( preg_match('/[+\r\n\t ]+/', $q['tag']) || !empty($q['cat']) ) {
+				$tags = preg_split('/[+\r\n\t ]+/', $q['tag']);
 				foreach ( (array) $tags as $tag ) {
 					$tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
 					$q['tag_slug__and'][] = $tag;
@@ -2083,7 +2083,7 @@
 				$eq = '=';
 				$andor = 'OR';
 			}
-			$author_array = preg_split('/[,\s]+/', $q['author']);
+			$author_array = preg_split('/[,\r\n\t ]+/', $q['author']);
 			$_author_array = array();
 			foreach ( $author_array as $key => $_author )
 				$_author_array[] = "$wpdb->posts.post_author " . $eq . ' ' . absint($_author);
