Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 14075)
+++ wp-includes/post.php	(working copy)
@@ -752,12 +752,12 @@
 
 	$post_types = array();
 	foreach ( (array) $wp_post_types as $post_type ) {
-		if ( empty($args) ) {
+		if ( empty( $args ) ) {
 			if ( $do_names )
 				$post_types[] = $post_type->name;
 			else
 				$post_types[] = $post_type;
-		} elseif ( array_intersect_assoc((array) $post_type, $args) ) {
+		} elseif ( count( array_intersect_assoc( (array) $post_type, $args ) ) == count( $args ) ) {
 			if ( $do_names )
 				$post_types[] = $post_type->name;
 			else
