Index: /home/cristi/svn/wp/wp-admin/includes/post.php
===================================================================
--- /home/cristi/svn/wp/wp-admin/includes/post.php	(revision 11052)
+++ /home/cristi/svn/wp/wp-admin/includes/post.php	(working copy)
@@ -789,20 +789,20 @@
 		$q = $_GET;
 	$q['m']   = isset($q['m']) ? (int) $q['m'] : 0;
 	$q['cat'] = isset($q['cat']) ? (int) $q['cat'] : 0;
-	$post_stati  = array(	//	array( adj, noun )
-				'publish' => array(_x('Published', 'post'), __('Published posts'), _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>')),
-				'future' => array(_x('Scheduled', 'post'), __('Scheduled posts'), _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>')),
-				'pending' => array(_x('Pending Review', 'post'), __('Pending posts'), _n_noop('Pending Review <span class="count">(%s)</span>', 'Pending Review <span class="count">(%s)</span>')),
-				'draft' => array(_x('Draft', 'post'), _x('Drafts', 'manage posts header'), _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>')),
-				'private' => array(_x('Private', 'post'), __('Private posts'), _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>')),
-			);
+	$post_statuses  = array(	//	array( adj, noun )
+		'publish' => array(_x('Published', 'post'), __('Published posts')),
+		'future' => array(_x('Scheduled', 'post'), __('Scheduled posts')),
+		'pending' => array(_x('Pending Review', 'post'), __('Pending posts')),
+		'draft' => array(_x('Draft', 'post'), _x('Drafts', 'manage posts header')),
+		'private' => array(_x('Private', 'post'), __('Private posts')),
+	);
 
-	$post_stati = apply_filters('post_stati', $post_stati);
+	$post_statuses = apply_filters('post_statuses', $post_statuses);
 
-	$avail_post_stati = get_available_post_statuses('post');
+	$avail_post_statuses = get_available_post_statuses('post');
 
 	$post_status_q = '';
-	if ( isset($q['post_status']) && in_array( $q['post_status'], array_keys($post_stati) ) ) {
+	if ( isset($q['post_status']) && in_array( $q['post_status'], array_keys($post_statuses) ) ) {
 		$post_status_q = '&post_status=' . $q['post_status'];
 		$post_status_q .= '&perm=readable';
 	}
@@ -825,7 +825,7 @@
 
 	wp("post_type=post&what_to_show=posts$post_status_q&posts_per_page=$posts_per_page&order=$order&orderby=$orderby");
 
-	return array($post_stati, $avail_post_stati);
+	return array($post_statuses, $avail_post_statuses);
 }
 
 /**
Index: /home/cristi/svn/wp/wp-admin/includes/template.php
===================================================================
--- /home/cristi/svn/wp/wp-admin/includes/template.php	(revision 11052)
+++ /home/cristi/svn/wp/wp-admin/includes/template.php	(working copy)
@@ -3715,4 +3715,26 @@
 <?php
 }
 
+/**
+ * Generates filter links for various admin pages.
+ *
+ * @since 2.8.0
+ */
+function wp_filter_links($links) {
+	$tmp = array();
+
+	foreach ( $links as $link => $link_format ) {
+		$class = $link_format['cond'] ? 'class="current"' : '';
+
+		if ( isset($link_format['count']) )
+			$count = sprintf(" <span class='count'>(%s)</span>", number_format_i18n($link_format['count']) );
+		else
+			$count = '';
+
+		$tmp[] = sprintf("<li><a href='$link' $class>%s</a>", $link_format['title'] . $count );
+	}
+
+	return implode( " |</li>\n", $tmp ) . '</li>';
+}
+
 ?>
Index: /home/cristi/svn/wp/wp-admin/edit.php
===================================================================
--- /home/cristi/svn/wp/wp-admin/edit.php	(revision 11052)
+++ /home/cristi/svn/wp/wp-admin/edit.php	(working copy)
@@ -82,8 +82,6 @@
 $parent_file = 'edit.php';
 wp_enqueue_script('inline-edit-post');
 
-list($post_stati, $avail_post_stati) = wp_edit_posts_query();
-
 require_once('admin-header.php');
 
 if ( !isset( $_GET['paged'] ) )
@@ -137,28 +135,42 @@
 <ul class="subsubsub">
 <?php
 if ( empty($locked_post_status) ) :
-$status_links = array();
+$edit_posts_links = array();
 $num_posts = wp_count_posts( 'post', 'readable' );
-$total_posts = array_sum( (array) $num_posts );
-$class = empty( $_GET['post_status'] ) ? ' class="current"' : '';
-$status_links[] = "<li><a href='edit.php' $class>" . sprintf( _n( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_posts ), number_format_i18n( $total_posts ) ) . '</a>';
+$edit_posts_links['edit.php'] = array(
+	'title' => __( 'All' ), 
+	'count' => array_sum( (array) $num_posts ),
+	'cond' => ( count( $_GET ) <= 1 )
+);
 
+global $user_ID, $wpdb;
+$my_posts_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'post' AND post_author = $user_ID");
+$edit_posts_links["edit.php?author=$user_ID"] = array(
+	'title' => __('My posts'), 
+	'count' => $my_posts_count,
+	'cond' => ( isset($_GET['author']) && $user_ID == $_GET['author'] )
+);
 
-foreach ( $post_stati as $status => $label ) {
-	$class = '';
+list($post_statuses, $avail_post_statuses) = wp_edit_posts_query();
 
-	if ( !in_array( $status, $avail_post_stati ) )
+foreach ( $post_statuses as $status => $label ) {
+	if ( !in_array( $status, $avail_post_statuses ) )
 		continue;
 
 	if ( empty( $num_posts->$status ) )
 		continue;
-	if ( isset($_GET['post_status']) && $status == $_GET['post_status'] )
-		$class = ' class="current"';
 
-	$status_links[] = "<li><a href='edit.php?post_status=$status' $class>" . sprintf( _n( $label[2][0], $label[2][1], $num_posts->$status ), number_format_i18n( $num_posts->$status ) ) . '</a>';
+	$edit_posts_links["edit.php?post_status=$status"] = array(
+		'title' => $label[0],
+		'count' => $num_posts->$status,
+		'cond' => ( isset($_GET['post_status']) && $status == $_GET['post_status'] )
+	);
 }
-echo implode( " |</li>\n", $status_links ) . '</li>';
-unset( $status_links );
+
+$edit_posts_links = apply_filters('edit_posts_links', $edit_posts_links);
+
+echo wp_filter_links($edit_posts_links);
+
 endif;
 ?>
 </ul>
Index: /home/cristi/svn/wp/wp-admin/edit-pages.php
===================================================================
--- /home/cristi/svn/wp/wp-admin/edit-pages.php	(revision 11052)
+++ /home/cristi/svn/wp/wp-admin/edit-pages.php	(working copy)
@@ -74,20 +74,22 @@
 $parent_file = 'edit-pages.php';
 wp_enqueue_script('inline-edit-post');
 
-$post_stati  = array(	//	array( adj, noun )
-		'publish' => array(_x('Published', 'page'), __('Published pages'), _nx_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>', 'page')),
-		'future' => array(_x('Scheduled', 'page'), __('Scheduled pages'), _nx_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>', 'page')),
-		'pending' => array(_x('Pending Review', 'page'), __('Pending pages'), _nx_noop('Pending Review <span class="count">(%s)</span>', 'Pending Review <span class="count">(%s)</span>', 'page')),
-		'draft' => array(_x('Draft', 'page'), _x('Drafts', 'manage posts header'), _nx_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>', 'page')),
-		'private' => array(_x('Private', 'page'), __('Private pages'), _nx_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>', 'page'))
-	);
+$post_statuses  = array(	//	array( adj, noun )
+	'publish' => array(_x('Published', 'page'), __('Published pages')),
+	'future' => array(_x('Scheduled', 'page'), __('Scheduled pages')),
+	'pending' => array(_x('Pending Review', 'page'), __('Pending pages')),
+	'draft' => array(_x('Draft', 'page'), _x('Drafts', 'manage posts header')),
+	'private' => array(_x('Private', 'page'), __('Private pages'))
+);
 
+$post_statuses = apply_filters('page_statuses', $post_statuses);
+
 $query = array('post_type' => 'page', 'orderby' => 'menu_order title', 'what_to_show' => 'posts',
 	'posts_per_page' => -1, 'posts_per_archive_page' => -1, 'order' => 'asc');
 
 $post_status_label = __('Pages');
-if ( isset($_GET['post_status']) && in_array( $_GET['post_status'], array_keys($post_stati) ) ) {
-	$post_status_label = $post_stati[$_GET['post_status']][1];
+if ( isset($_GET['post_status']) && in_array( $_GET['post_status'], array_keys($post_statuses) ) ) {
+	$post_status_label = $post_statuses[$_GET['post_status']][1];
 	$query['post_status'] = $_GET['post_status'];
 	$query['perm'] = 'readable';
 }
@@ -141,29 +143,46 @@
 endif; ?>
 
 <form id="posts-filter" action="" method="get">
+
 <ul class="subsubsub">
 <?php
-
-$avail_post_stati = get_available_post_statuses('page');
 if ( empty($locked_post_status) ) :
-$status_links = array();
-$num_posts = wp_count_posts('page', 'readable');
-$total_posts = array_sum( (array) $num_posts );
-$class = empty($_GET['post_status']) ? ' class="current"' : '';
-$status_links[] = "<li><a href='edit-pages.php'$class>" . sprintf( _n( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_posts ), number_format_i18n( $total_posts ) ) . '</a>';
-foreach ( $post_stati as $status => $label ) {
-	$class = '';
+$edit_posts_links = array();
+$num_posts = wp_count_posts( 'page', 'readable' );
+$edit_posts_links['edit-pages.php'] = array(
+	'title' => __( 'All' ), 
+	'count' => array_sum( (array) $num_posts ),
+	'cond' => ( count( $_GET ) == 0 )
+);
 
-	if ( !in_array($status, $avail_post_stati) )
+global $user_ID, $wpdb;
+$my_posts_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'page' AND post_author = $user_ID");
+$edit_posts_links["edit-pages.php?author=$user_ID"] = array(
+	'title' => __('My pages'),
+	'count' => $my_posts_count,
+	'cond' => ( isset($_GET['author']) && $user_ID == $_GET['author'] )
+);
+
+$avail_post_statuses = get_available_post_statuses('page');
+
+foreach ( $post_statuses as $status => $label ) {
+	if ( !in_array( $status, $avail_post_statuses ) )
 		continue;
 
-	if ( isset( $_GET['post_status'] ) && $status == $_GET['post_status'] )
-		$class = ' class="current"';
+	if ( empty( $num_posts->$status ) )
+		continue;
 
-	$status_links[] = "<li><a href='edit-pages.php?post_status=$status'$class>" . sprintf( _nx( $label[2][0], $label[2][1], $num_posts->$status, $label[2][2] ), number_format_i18n( $num_posts->$status ) ) . '</a>';
+	$edit_posts_links["edit-pages.php?post_status=$status"] = array(
+		'title' => $label[0],
+		'count' => $num_posts->$status,
+		'cond' => ( isset($_GET['post_status']) && $status == $_GET['post_status'] )
+	);
 }
-echo implode( " |</li>\n", $status_links ) . '</li>';
-unset($status_links);
+
+$edit_posts_links = apply_filters('edit_posts_links', $edit_posts_links);
+
+echo wp_filter_links($edit_posts_links);
+
 endif;
 ?>
 </ul>
