Index: wp-admin/includes/ajax-actions.php
===================================================================
--- wp-admin/includes/ajax-actions.php	(revision 24177)
+++ wp-admin/includes/ajax-actions.php	(working copy)
@@ -2117,6 +2117,8 @@
 	$right_handle_at = ! empty( $_GET['right_handle_at'] ) ? (int) $_GET['right_handle_at'] : 0;
 	$left_handle_at = ! empty( $_GET['left_handle_at'] ) ? (int) $_GET['left_handle_at'] : 0;
 	$single_revision_id = ! empty( $_GET['single_revision_id'] ) ? absint( $_GET['single_revision_id'] ) : 0;
+	$page_size = ! empty( $_GET['page_size'] ) ? absint( $_GET['page_size'] ) : -1;
+	$page = ! empty( $_GET['page'] ) ? absint( $_GET['page'] ) : 1;
 	$compare_two_mode = (bool) $post_id;
 
 	//
@@ -2131,7 +2133,7 @@
 	if ( ! current_user_can( 'read_post', $post_id ) )
 		continue;
 
-	if ( ! $revisions = wp_get_post_revisions( $post_id ) )
+	if ( ! $revisions = wp_get_post_revisions( $post_id, array( 'posts_per_page' => $page_size, 'paged' => $page ) ) )
 		return;
 
 	$left_revision = get_post( $compare_to );
Index: wp-admin/js/revisions.js
===================================================================
--- wp-admin/js/revisions.js	(revision 24177)
+++ wp-admin/js/revisions.js	(working copy)
@@ -142,16 +142,18 @@
 		},
 
 		// load the models for the single handle mode
-		reloadModelSingle: function() {
+		reloadModelSingle: function( options ) {
 			var self = this;
+			
+			options = _.defaults( options || {}, {
+				'showAutosaves': self.autosaves,
+				'showSplitView': self.showSplitView
+			});
 
 			self.startRightModelLoading();
 
 			self.revisions.reload({
-				options: {
-				'showAutosaves': self.autosaves,
-				'showSplitView': self.showSplitView
-				},
+				options: options,
 
 				success: function() {
 					var revisionCount = self.revisions.length;
@@ -540,7 +542,8 @@
 		// next and previous buttons, only available in compare one mode
 		events: {
 			'click #next':     'nextRevision',
-			'click #previous': 'previousRevision'
+			'click #previous': 'previousRevision',
+			'click .paginate': 'changePage'
 		},
 
 		render: function() {
@@ -600,6 +603,15 @@
 			Diff.slider.refresh({
 				value: Diff.rightDiff - 1
 			}, true );
+		},
+		
+		changePage: function(e) {
+			$( '.paginate' 	).removeClass( 'button-disabled' );
+			$( e.currentTarget ).addClass( 'button-disabled' );
+			
+			Diff.reloadModelSingle({ 
+				'page' : $( e.currentTarget ).data( 'id' ) 
+			});
 		}
 	});
 
@@ -751,6 +763,8 @@
 				'showSplitView': true,
 				'rightHandleAt': 0,
 				'leftHandleAt': 0,
+				'page_size' : revisions.model.settings.page_size,
+				'page' : 1,
 				'nonce': revisions.model.settings.nonce
 			});
 		},
@@ -764,6 +778,8 @@
 				'&show_split_view=' + this.options.showSplitView +
 				'&right_handle_at=' + this.options.rightHandleAt +
 				'&left_handle_at=' + this.options.leftHandleAt +
+				'&page_size=' + this.options.page_size +
+				'&page=' + this.options.page +
 				'&nonce=' + this.options.nonce;
 		},
 
Index: wp-admin/revision.php
===================================================================
--- wp-admin/revision.php	(revision 24177)
+++ wp-admin/revision.php	(working copy)
@@ -82,7 +82,8 @@
 $settings = array(
 	'post_id'     => $post->ID,
 	'nonce'       => wp_create_nonce( 'revisions-ajax-nonce' ),
-	'revision_id' => $revision_id
+	'revision_id' => $revision_id,
+	'page_size'   => 5
 );
 
 wp_localize_script( 'revisions', 'wpRevisionsSettings', $settings );
@@ -170,6 +171,14 @@
 	</div>
 
 	<div id="diff-slider" class="wp-slider"></div>
+	
+	<div id="diff-paginate" style="text-align: center; margin: 5px 0 0 0;">
+		<?php 
+		$pages = count( wp_get_post_revisions( $post->ID ) ) / $settings['page_size'];
+		for( $i = 1; $i <= $pages; $i++ )
+			echo '<input class="button'.($i==1 ? ' button-disabled' : '').' paginate" type="button" value="'.$i.'" data-id="'.$i.'" />';
+		?>
+	</div>
 </script>
 
 <script id="tmpl-revision-ticks" type="text/html">
