Index: wp-admin/includes/template.php
===================================================================
--- wp-admin/includes/template.php	(revision 13447)
+++ wp-admin/includes/template.php	(working copy)
@@ -1926,6 +1926,7 @@
 	$post = (int) $post;
 	$count = wp_count_comments();
 	$index = '';
+	$userid = apply_filters( 'get_comment_list_by_user', false ); 
 
 	if ( 'moderated' == $status ) {
 		$approved = "c.comment_approved = '0'";
@@ -1960,18 +1961,30 @@
 		$typesql = "AND ( c.comment_type = 'pingback' OR c.comment_type = 'trackback' )";
 	elseif ( 'all' == $type )
 		$typesql = '';
-	elseif ( !empty($type) )
-		$typesql = $wpdb->prepare("AND c.comment_type = %s", $type);
+	elseif ( ! empty( $type ) )
+		$typesql = $wpdb->prepare( "AND c.comment_type = %s", $type );
 	else
 		$typesql = '';
 
-	if ( !empty($type) )
+	if ( ! empty( $type ) )
 		$total = '';
 
 	$query = "FROM $wpdb->comments c LEFT JOIN $wpdb->posts p ON c.comment_post_ID = p.ID WHERE p.post_status != 'trash' ";
+	
+	if ( $userid && ! empty( $userid ) ) {
+		$total = '';
+	    if( ! is_array( $userid ) ) {
+			$userid = absint( $userid );
+			$query .= "AND p.post_author = '$userid' ";
+		} else {
+			$userids = array_map( 'absint', $userid );
+			$query .= "AND p.post_author IN ( '" . implode( "', '", $userids ) . "' ) ";
+		}
+	}
+	
 	if ( $s ) {
 		$total = '';
-		$s = $wpdb->escape($s);
+		$s = $wpdb->escape( $s );
 		$query .= "AND
 			(c.comment_author LIKE '%$s%' OR
 			c.comment_author_email LIKE '%$s%' OR
@@ -1984,13 +1997,13 @@
 		$query .= "AND $approved $post $typesql";
 	}
 
-	$comments = $wpdb->get_results("SELECT * $query $orderby");
+	$comments = $wpdb->get_results( "SELECT * $query $orderby" );
 	if ( '' === $total )
-		$total = $wpdb->get_var("SELECT COUNT(c.comment_ID) $query");
+		$total = $wpdb->get_var( "SELECT COUNT(c.comment_ID) $query" );
 
-	update_comment_cache($comments);
+	update_comment_cache( $comments );
 
-	return array($comments, $total);
+	return array( $comments, $total );
 }
 
 /**
