Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 17320)
+++ wp-includes/post.php	(working copy)
@@ -3405,7 +3405,10 @@
 	if ( $parent >= 0 )
 		$where .= $wpdb->prepare(' AND post_parent = %d ', $parent);
 
-	$where_post_type = $wpdb->prepare( "post_type = '%s' AND post_status = '%s'", $post_type, $post_status );
+	if ( current_user_can('read_private_pages') && 'page' == $post_type )
+		$where_post_type = $wpdb->prepare( "post_type = '%s' AND (post_status = '%s' OR post_status = 'private')", $post_type, $post_status );
+	else
+		$where_post_type = $wpdb->prepare( "post_type = '%s' AND post_status = '%s'", $post_type, $post_status );
 
 	$query = "SELECT * FROM $wpdb->posts $join WHERE ($where_post_type) $where ";
 	$query .= $author_query;

