Index: wp-includes/post-template.php
===================================================================
--- wp-includes/post-template.php	(revision 23400)
+++ wp-includes/post-template.php	(working copy)
@@ -1301,15 +1301,17 @@
 		return false;
 
 	/* translators: revision date format, see http://php.net/date */
-	$datef = _x( 'j F, Y @ G:i', 'revision date format');
+	$datef = _x( 'D, M jS @ G:i a', 'revision date format' ); 
 	/* translators: 1: date */
 	$autosavef = __( '%1$s [Autosave]' );
 	/* translators: 1: date */
 	$currentf  = __( '%1$s [Current Revision]' );
 
+	$author = get_the_author_meta( 'display_name', $revision->post_author );
+
 	$date = date_i18n( $datef, strtotime( $revision->post_modified ) );
 	if ( $link && current_user_can( 'edit_post', $revision->ID ) && $link = get_edit_post_link( $revision->ID ) )
-		$date = "<a href='$link'>$date</a>";
+		$date = "<a href='$link'>$author : $date</a>";
 
 	if ( !wp_is_post_revision( $revision ) )
 		$date = sprintf( $currentf, $date );
@@ -1386,64 +1388,47 @@
 			continue;
 
 		$date = wp_post_revision_title( $revision );
-		$name = get_the_author_meta( 'display_name', $revision->post_author );
+		$datelinktodiff = sprintf( '<a href="revision.php?action=diff&post_type=post&left=%d&right=%d">%s</a>', 
+									$revision->ID, $post->ID, wp_post_revision_title( $revision, false ) ); 
 
+		$name = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.';
+		$avatar = get_avatar( $revision->post_author, 22 );
 		if ( 'form-table' == $format ) {
-			if ( $left )
-				$left_checked = $left == $revision->ID ? ' checked="checked"' : '';
-			else
-				$left_checked = $right_checked ? ' checked="checked"' : ''; // [sic] (the next one)
-			$right_checked = $right == $revision->ID ? ' checked="checked"' : '';
 
 			$class = $class ? '' : " class='alternate'";
 
 			if ( $post->ID != $revision->ID && $can_edit_post )
-				$actions = '<a href="' . wp_nonce_url( add_query_arg( array( 'revision' => $revision->ID, 'action' => 'restore' ) ), "restore-post_$post->ID|$revision->ID" ) . '">' . __( 'Restore' ) . '</a>';
+				$actions = '';// '<a href="' . wp_nonce_url( add_query_arg( array( 'revision' => $revision->ID, 'action' => 'restore' ) ), "restore-post_$post->ID|$revision->ID" ) . '">' . __( 'Restore' ) . '</a>';
 			else
 				$actions = '';
 
 			$rows .= "<tr$class>\n";
-			$rows .= "\t<th style='white-space: nowrap' scope='row'><input type='radio' name='left' value='$revision->ID'$left_checked /></th>\n";
-			$rows .= "\t<th style='white-space: nowrap' scope='row'><input type='radio' name='right' value='$revision->ID'$right_checked /></th>\n";
-			$rows .= "\t<td>$date</td>\n";
+			$rows .= "\t<th style='white-space: nowrap' scope='row'><input type='checkbox' name='revisionstocompare[]' value='$revision->ID' /></th>\n";
+			$rows .= "\t<td>$avatar $date</td>\n";
 			$rows .= "\t<td>$name</td>\n";
-			$rows .= "\t<td class='action-links'>$actions</td>\n";
 			$rows .= "</tr>\n";
 		} else {
-			$title = sprintf( $titlef, $date, $name );
+			$title = sprintf( $titlef, $datelinktodiff, $name );
 			$rows .= "\t<li>$title</li>\n";
 		}
 	}
 
 	if ( 'form-table' == $format ) : ?>
-
-<form action="revision.php" method="get">
-
+<form action="revision.php" method="get" id='revision-list-form'>
+<hr />
 <div class="tablenav">
-	<div class="alignleft">
-		<input type="submit" class="button-secondary" value="<?php esc_attr_e( 'Compare Revisions' ); ?>" />
+	<div class='revision-post-list-title'><?php _e( 'Pick two revisions to compare' ) ?></div>
+	<div class="alignright">
+		<input type="submit" class="button-secondary compare-revisions no-js" value="<?php esc_attr_e( 'Compare Revisions' ); ?>" />
 		<input type="hidden" name="action" value="diff" />
 		<input type="hidden" name="post_type" value="<?php echo esc_attr($post->post_type); ?>" />
 	</div>
 </div>
 
-<br class="clear" />
-
 <table class="widefat post-revisions" cellspacing="0" id="post-revisions">
 	<col />
-	<col />
-	<col style="width: 33%" />
-	<col style="width: 33%" />
-	<col style="width: 33%" />
-<thead>
-<tr>
-	<th scope="col"><?php /* translators: column name in revisions */ _ex( 'Old', 'revisions column name' ); ?></th>
-	<th scope="col"><?php /* translators: column name in revisions */ _ex( 'New', 'revisions column name' ); ?></th>
-	<th scope="col"><?php /* translators: column name in revisions */ _ex( 'Date Created', 'revisions column name' ); ?></th>
-	<th scope="col"><?php _e( 'Author' ); ?></th>
-	<th scope="col" class="action-links"><?php _e( 'Actions' ); ?></th>
-</tr>
-</thead>
+	<col style="width: 40%" />
+	<col style="width: 59%" />
 <tbody>
 
 <?php echo $rows; ?>
Index: wp-includes/js/wp-list-revisions.js
===================================================================
--- wp-includes/js/wp-list-revisions.js	(revision 23400)
+++ wp-includes/js/wp-list-revisions.js	(working copy)
@@ -6,14 +6,12 @@
 			var i, checkCount = 0, side;
 			for ( i = 0; i < inputs.length; i++ ) {
 				checkCount += inputs[i].checked ? 1 : 0;
-				side = inputs[i].getAttribute('name');
-				if ( ! inputs[i].checked &&
-				( 'left' == side && 1 > checkCount || 'right' == side && 1 < checkCount && ( ! inputs[i-1] || ! inputs[i-1].checked ) ) &&
-				! ( inputs[i+1] && inputs[i+1].checked && 'right' == inputs[i+1].getAttribute('name') ) )
-					inputs[i].style.visibility = 'hidden';
-				else if ( 'left' == side || 'right' == side )
-					inputs[i].style.visibility = 'visible';
 			}
+
+			if ( 2 == checkCount ) {
+				document.getElementById('revision-list-form').submit();
+			}
+
 		}
 		pr.onclick();
 	}
Index: wp-includes/wp-diff.php
===================================================================
--- wp-includes/wp-diff.php	(revision 23400)
+++ wp-includes/wp-diff.php	(working copy)
@@ -98,7 +98,7 @@
 	 * @return string
 	 */
 	function addedLine( $line ) {
-		return "<td>+</td><td class='diff-addedline'>{$line}</td>";
+		return "<td class='diff-addedline-indicator'>+</td><td class='diff-addedline'>{$line}</td>";
 	}
 
 	/**
@@ -108,7 +108,7 @@
 	 * @return string
 	 */
 	function deletedLine( $line ) {
-		return "<td>-</td><td class='diff-deletedline'>{$line}</td>";
+		return "<td class='diff-deletedline-indicator'>-</td><td class='diff-deletedline'>{$line}</td>";
 	}
 
 	/**
@@ -118,7 +118,7 @@
 	 * @return string
 	 */
 	function contextLine( $line ) {
-		return "<td> </td><td class='diff-context'>{$line}</td>";
+		return "<td class='context-indicator'></td><td class='diff-context'>{$line}</td>";
 	}
 
 	/**
@@ -142,7 +142,7 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
+				$line = wp_kses_post( $line );
 			$r .= '<tr>' . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n";
 		}
 		return $r;
@@ -160,7 +160,7 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
+				$line = ( $line );
 			$r .= '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . "</tr>\n";
 		}
 		return $r;
@@ -178,7 +178,7 @@
 		$r = '';
 		foreach ($lines as $line) {
 			if ( $encode )
-				$line = htmlspecialchars( $line );
+				$line = wp_kses_post( $line );
 			$r .= '<tr>' .
 				$this->contextLine( $line ) . $this->contextLine( $line ) . "</tr>\n";
 		}
@@ -248,14 +248,14 @@
 			if ( isset( $orig_diffs[$orig_rows[$row]] ) )
 				$orig_line = $orig_diffs[$orig_rows[$row]];
 			elseif ( isset( $orig[$orig_rows[$row]] ) )
-				$orig_line = htmlspecialchars($orig[$orig_rows[$row]]);
+				$orig_line = wp_kses_post($orig[$orig_rows[$row]]);
 			else
 				$orig_line = '';
 
 			if ( isset( $final_diffs[$final_rows[$row]] ) )
 				$final_line = $final_diffs[$final_rows[$row]];
 			elseif ( isset( $final[$final_rows[$row]] ) )
-				$final_line = htmlspecialchars($final[$final_rows[$row]]);
+				$final_line = wp_kses_post($final[$final_rows[$row]]);
 			else
 				$final_line = '';
 
Index: wp-includes/pluggable.php
===================================================================
--- wp-includes/pluggable.php	(revision 23400)
+++ wp-includes/pluggable.php	(working copy)
@@ -1743,3 +1743,47 @@
 	return $r;
 }
 endif;
+function wp_text_diff_with_count( $left_string, $right_string, $args = null ) {
+	$defaults = array( 'title' => '', 'title_left' => '', 'title_right' => '' );
+	$args = wp_parse_args( $args, $defaults );
+
+	if ( !class_exists( 'WP_Text_Diff_Renderer_Table' ) )
+		require( ABSPATH . WPINC . '/wp-diff.php' );
+
+	$left_string  = normalize_whitespace( $left_string );
+	$right_string = normalize_whitespace( $right_string );
+
+	$left_lines  = explode( "\n", $left_string );
+	$right_lines = explode( "\n", $right_string) ;
+
+	$text_diff = new Text_Diff($left_lines, $right_lines  );
+	$linesadded = $text_diff->countAddedLines();
+	$linesdeleted = $text_diff->countDeletedLines();
+
+	$renderer  = new WP_Text_Diff_Renderer_Table();
+	$diff = $renderer->render( $text_diff );
+
+	if ( !$diff )
+		return '';
+
+	$r  = "<table class='diff'>\n";
+	$r .= "<col class='ltype' /><col class='content' /><col class='ltype' /><col class='content' />";
+
+	if ( $args['title'] || $args['title_left'] || $args['title_right'] )
+		$r .= "<thead>";
+	if ( $args['title'] )
+		$r .= "<tr class='diff-title'><th colspan='4'>$args[title]</th></tr>\n";
+	if ( $args['title_left'] || $args['title_right'] ) {
+		$r .= "<tr class='diff-sub-title'>\n";
+		$r .= "\t<td id=\"left\"></td><th>$args[title_left]</th>\n";
+		$r .= "\t<td id=\"right\"></td><th>$args[title_right]</th>\n";
+		$r .= "</tr>\n";
+	}
+	if ( $args['title'] || $args['title_left'] || $args['title_right'] )
+		$r .= "</thead>\n";
+
+	$r .= "<tbody>\n$diff\n</tbody>\n";
+	$r .= "</table>";
+
+	return array( 'html' => $r, 'linesadded' => $linesadded, 'linesdeleted' => $linesdeleted );
+}
\ No newline at end of file
Index: wp-admin/revision.php
===================================================================
--- wp-admin/revision.php	(revision 23400)
+++ wp-admin/revision.php	(working copy)
@@ -11,7 +11,7 @@
 
 wp_enqueue_script('list-revisions');
 
-wp_reset_vars(array('revision', 'left', 'right', 'action'));
+wp_reset_vars( array( 'revision', 'left', 'right', 'action' ) );
 
 $revision_id = absint($revision);
 $left        = absint($left);
@@ -19,6 +19,13 @@
 
 $redirect = 'edit.php';
 
+if ( isset( $_GET['revisionstocompare'] ) ) {
+	$revisionstocompare = $_GET['revisionstocompare'];
+	$left        = absint( $revisionstocompare[1] );
+	$right       = absint( $revisionstocompare[0] );
+}
+
+
 switch ( $action ) :
 case 'restore' :
 	if ( !$revision = wp_get_post_revision( $revision_id ) )
@@ -93,7 +100,7 @@
 		break;
 
 	$post_title = '<a href="' . get_edit_post_link() . '">' . get_the_title() . '</a>';
-	$h2 = sprintf( __( 'Compare Revisions of &#8220;%1$s&#8221;' ), $post_title );
+	$h2 = sprintf( __( 'Comparing revisions of %1$s' ), $post_title );
 	$title = __( 'Revisions' );
 
 	$left  = $left_revision->ID;
@@ -135,6 +142,7 @@
 	$redirect = 'edit.php';
 
 if ( !empty($redirect) ) {
+	$redirect = remove_query_arg( 'revisionstocompare', $redirect );
 	wp_redirect( $redirect );
 	exit;
 }
@@ -146,48 +154,72 @@
 	$parent_file = $submenu_file = 'edit.php';
 
 require_once( './admin-header.php' );
-
 ?>
 
 <div class="wrap">
-
 <h2 class="long-header"><?php echo $h2; ?></h2>
-
+<hr />
 <table class="form-table ie-fixed">
-	<col class="th" />
 <?php if ( 'diff' == $action ) : ?>
 <tr id="revision">
-	<th scope="row"></th>
 	<th scope="col" class="th-full">
-		<span class="alignleft"><?php printf( __('Older: %s'), wp_post_revision_title( $left_revision ) ); ?></span>
-		<span class="alignright"><?php printf( __('Newer: %s'), wp_post_revision_title( $right_revision ) ); ?></span>
+		<table width="100%" cellspacing="0" cellpadding="0"> 
+			<tr>
+				<td width="50%">
+					<?php printf('<div class="revision-type-left">%s</div><div class="revision-avatar-left">%s</div><div class="revision-title-left">%s</div>',
+									__('Older'), 
+									get_avatar( $left_revision->post_author, 22 ),
+									wp_post_revision_title( $left_revision )
+								 ); ?>
+				</td>
+				<td width="50%">
+					<?php printf('<div class="revision-type-right">%s</div><div class="revision-title-right">%s</div><div class="revision-avatar-right">%s</div>',
+									__('Newer'),
+									wp_post_revision_title( $right_revision ),
+									get_avatar( $right_revision->post_author, 22 )
+								 ); ?>
+				</td>
+			</tr>
+		</table>
 	</th>
 </tr>
 <?php endif;
 
 // use get_post_to_edit filters?
 $identical = true;
+$linesadded=0;
+$linesdeleted=0;
 foreach ( _wp_post_revision_fields() as $field => $field_title ) :
 	if ( 'diff' == $action ) {
 		$left_content = apply_filters( "_wp_post_revision_field_$field", $left_revision->$field, $field );
 		$right_content = apply_filters( "_wp_post_revision_field_$field", $right_revision->$field, $field );
-		if ( !$content = wp_text_diff( $left_content, $right_content ) )
+		if ( !$content = wp_text_diff_with_count( $left_content, $right_content ) )
 			continue; // There is no difference between left and right
+		$htmlcontent = $content[ 'html' ];
+		$linesadded += $content[ 'linesadded' ];
+		$linesdeleted += $content[ 'linesdeleted' ];
+
 		$identical = false;
 	} else {
-		add_filter( "_wp_post_revision_field_$field", 'htmlspecialchars' );
-		$content = apply_filters( "_wp_post_revision_field_$field", $revision->$field, $field );
+		add_filter( "_wp_post_revision_field_$field", 'wp_kses_post' );
+		$htmlcontent = apply_filters( "_wp_post_revision_field_$field", $revision->$field, $field );
 	}
+
 	?>
 
 	<tr id="revision-field-<?php echo $field; ?>">
-		<th scope="row"><?php echo esc_html( $field_title ); ?></th>
-		<td><div class="pre"><?php echo $content; ?></div></td>
+		<td><div class="pre"><?php echo $htmlcontent; ?></div></td>
 	</tr>
 
 	<?php
 
 endforeach;
+?>
+<div class="revision-summary-area">
+	<div class="revisions-header-deleted"><?php echo (0 != $linesdeleted ? '-' : '' ) . $linesdeleted; ?></div>
+	<div class="revisions-header-added"><?php echo (0 != $linesadded ? '+' : '' ) . $linesadded; ?></div>
+</div>
+<?php
 
 if ( 'diff' == $action && $identical ) :
 
@@ -205,8 +237,6 @@
 
 <br class="clear" />
 
-<h3><?php echo $title; ?></h3>
-
 <?php
 
 $args = array( 'format' => 'form-table', 'parent' => true, 'right' => $right, 'left' => $left );
Index: wp-admin/css/colors-fresh.css
===================================================================
--- wp-admin/css/colors-fresh.css	(revision 23400)
+++ wp-admin/css/colors-fresh.css	(working copy)
@@ -1350,17 +1350,48 @@
 
 /* Diff */
 table.diff .diff-deletedline {
-	background-color: #fdd;
+	background-color: #EC9898;
 }
 
+table.diff .diff-deletedline-indicator, .revisions-header-deleted {
+	color: #D4362F; /* dark red for - (deleted) symbol and header diffs*/
+}
+.revision-summary-area { /*move the diff summary to the upper right*/
+	position: absolute;
+	top: 20px;
+	right: 20px;
+}
+.revisions-header-deleted, .revisions-header-added {
+	float: right;
+	font-size: 1.6em;
+	font-weight: bold;
+	padding: 3px;
+}
+
+.revision-post-list-title {
+	float: left;
+	font-weight: bold;
+	font-size: 16px;
+	line-height: 24px;
+	color: #676767;
+}
+
 table.diff .diff-deletedline del {
 	background-color: #f99;
 }
 
 table.diff .diff-addedline {
-	background-color: #dfd;
+	background-color: #B5D8A6;
 }
 
+table.diff .diff-addedline-indicator, .revisions-header-added {
+	color: #00A100; /* dark green for + (added) symbol and header diffs */
+}
+
+table.diff li { 
+	margin-left: 12px; /*add some left margin to li's in the diff or they hand outside the box*/
+}
+
 table.diff .diff-addedline ins {
 	background-color: #9f9;
 }
Index: wp-admin/css/wp-admin.css
===================================================================
--- wp-admin/css/wp-admin.css	(revision 23400)
+++ wp-admin/css/wp-admin.css	(working copy)
@@ -4411,7 +4411,7 @@
 .form-table td {
 	margin-bottom: 9px;
 	padding: 8px 10px;
-	line-height: 20px;
+	line-height: 24px;
 	font-size: 12px;
 }
 
@@ -8585,3 +8585,81 @@
 .locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap {
 	margin-left: 8em;
 }
+.revision-title-left {
+	float: left;
+	font-size: 1.1em;
+}
+
+.revision-title-right {
+	float: right;
+	font-size: 1.1em;
+	padding-right: 5px;
+}
+
+.revision-type-left {
+	float: left;
+	font-size: 1.4em;
+	color: #999;
+}
+
+.revision-type-right {
+	float: right;
+	font-size: 1.4em;
+	color: #999;
+}
+
+.revision-avatar-left {
+	float: left;
+	margin-left: 5px;
+	margin-right: 5px;
+}
+
+.revision-avatar-right {
+	float: right;
+	margin-right: 5px;
+	margin-left: 5px;
+}
+
+.form-table tr#revision th {
+	vertical-align: top;
+	text-align: left;
+	padding-top: 10px;
+	padding-bottom: 10px;
+	padding-right: 10px;
+	padding-left: 0;
+	width: 200px;
+}
+
+.form-table tr#revision td {
+	font-size: 12px;
+	line-height: 24px;
+	margin-bottom: 9px;
+	padding-top: 8px;
+	padding-bottom: 8px;
+	padding-right: 10px;
+	padding-left: 0;
+}
+
+.form-table tr#revision-field-post_content .pre {
+	margin: 0;
+	padding: 0;
+}
+
+.form-table  tr#revision-field-post_content td {
+	font-size: 12px;
+	line-height: 24px;
+	margin-bottom: 9px;
+	padding: 8px 10px;
+}
+
+
+.form-table tr#revision-field-post_content td.diff-addedline-indicator {
+	padding-left: 30px;
+}
+table.post-revisions a {
+	line-height: 24px;
+}
+table.post-revisions img {
+	float: left;
+	margin-right: 5px;
+}
