Index: wp-includes/query.php
===================================================================
--- wp-includes/query.php	(revision 21544)
+++ wp-includes/query.php	(working copy)
@@ -2216,6 +2216,16 @@
 		if ( $this->is_tax ) {
 			if ( empty($post_type) ) {
 				$post_type = 'any';
+				$tax_post_types = array();
+				foreach ( get_taxonomies() as $taxonomy ) {
+					if ( isset($this->query_vars[$taxonomy]) ) {
+						$tax_obj = get_taxonomy($taxonomy);
+						$tax_post_types = array_unique( array_merge($tax_post_types, $tax_obj->object_type) );
+					}
+				}
+				if ( !empty($tax_post_types) ) {
+					$post_type = $tax_post_types;
+				}
 				$post_status_join = true;
 			} elseif ( in_array('attachment', (array) $post_type) ) {
 				$post_status_join = true;
