Index: canonical.php
===================================================================
--- canonical.php	(revision 20399)
+++ canonical.php	(working copy)
@@ -476,9 +476,13 @@
 	if ( get_query_var('name') ) {
 		$where = $wpdb->prepare("post_name LIKE %s", like_escape( get_query_var('name') ) . '%');
 
-		// if any of post_type, year, monthnum, or day are set, use them to refine the query
+		// Use either an explicitly set post_type or search IN all registered and publicly queryable post types
 		if ( get_query_var('post_type') )
 			$where .= $wpdb->prepare(" AND post_type = %s", get_query_var('post_type'));
+		else
+			$where .= $wpdb->prepare(" AND post_type IN ('" . implode( "', '", get_post_types( array( 'publicly_queryable' => true ) ) ) . "')" );
+
+		// if any of year, monthnum, or day are set, use them to refine the query
 		if ( get_query_var('year') )
 			$where .= $wpdb->prepare(" AND YEAR(post_date) = %d", get_query_var('year'));
 		if ( get_query_var('monthnum') )
