diff --git wp-admin/includes/class-wp-posts-list-table.php wp-admin/includes/class-wp-posts-list-table.php
index 9d509bb..0934b26 100644
--- wp-admin/includes/class-wp-posts-list-table.php
+++ wp-admin/includes/class-wp-posts-list-table.php
@@ -363,10 +363,10 @@ class WP_Posts_List_Table extends WP_List_Table {
 					clean_post_cache( $page );
 				}
 
-				if ( 0 == $page->post_parent )
-					$top_level_pages[] = $page;
+				if ( 0 == $page->post_parent || !$this->is_post_in_array( $page->post_parent, $pages ))
+				    $top_level_pages[] = $page;
 				else
-					$children_pages[ $page->post_parent ][] = $page;
+				    $children_pages[ $page->post_parent ][] = $page;
 			}
 
 			$pages = &$top_level_pages;
@@ -514,10 +514,9 @@ class WP_Posts_List_Table extends WP_List_Table {
 							if ( is_null( $parent ) )
 								break;
 
-							$level++;
 							$find_main_page = (int) $parent->post_parent;
 
-							if ( !isset( $parent_name ) )
+							if ( !isset( $parent_name ) && $parent->post_status != 'trash' )
 								$parent_name = apply_filters( 'the_title', $parent->post_title, $parent->ID );
 						}
 					}
@@ -1060,4 +1059,18 @@ class WP_Posts_List_Table extends WP_List_Table {
 		</tbody></table></form>
 <?php
 	}
+
+	/**
+	 * Determine if a post object with certain ID exists in an array of post objects
+	 *
+	 * @return bool
+	 */
+	function is_post_in_array( $post_id, $posts ) {    
+		foreach ( $posts as $post ) {
+			if ( $post->ID == $post_id ) {
+				return true;
+			}
+		}
+		return false;
+	}  
 }
