diff --git src/wp-admin/js/revisions.js src/wp-admin/js/revisions.js
index 521e55c..6421c1d 100644
--- src/wp-admin/js/revisions.js
+++ src/wp-admin/js/revisions.js
@@ -35,19 +35,6 @@ window.wp = window.wp || {};
 		});
 	};
 
-	// wp_localize_script transforms top-level numbers into strings. Undo that.
-	if ( revisions.settings.to ) {
-		revisions.settings.to = parseInt( revisions.settings.to, 10 );
-	}
-	if ( revisions.settings.from ) {
-		revisions.settings.from = parseInt( revisions.settings.from, 10 );
-	}
-
-	// wp_localize_script does not allow for top-level booleans. Fix that.
-	if ( revisions.settings.compareTwoMode ) {
-		revisions.settings.compareTwoMode = revisions.settings.compareTwoMode === '1';
-	}
-
 	/**
 	 * ========================================================================
 	 * MODELS
@@ -223,6 +210,7 @@ window.wp = window.wp || {};
 			_.bindAll( this, 'getClosestUnloaded' );
 			this.loadAll = _.once( this._loadAll );
 			this.revisions = options.revisions;
+			this.postId = options.postId;
 			this.requests  = {};
 		},
 
@@ -320,7 +308,7 @@ window.wp = window.wp || {};
 				options.context = this;
 				options.data = _.extend( options.data || {}, {
 					action: 'get-revision-diffs',
-					post_id: revisions.settings.postId
+					post_id: this.postId
 				});
 
 				var deferred = wp.ajax.send( options ),
@@ -360,16 +348,15 @@ window.wp = window.wp || {};
 		},
 
 		initialize: function( attributes, options ) {
-			var properties = {};
-
 			_.bindAll( this, 'receiveDiff' );
 			this._debouncedEnsureDiff = _.debounce( this._ensureDiff, 200 );
 
 			this.revisions = options.revisions;
-			this.diffs = new revisions.model.Diffs( [], { revisions: this.revisions });
+			this.diffs = new revisions.model.Diffs( [], { revisions: this.revisions,
+				postId: this.get( 'postId' ) });
 
-			// Set the initial diffs collection provided through the settings
-			this.diffs.set( revisions.settings.diffData );
+			// Set the initial diffs collection.
+			this.diffs.set( this.get( 'diffData' ) );
 
 			// Set up internal listeners
 			this.listenTo( this, 'change:from', this.changeRevisionHandler );
@@ -379,11 +366,12 @@ window.wp = window.wp || {};
 			this.listenTo( this.diffs, 'ensure:load', this.updateLoadingStatus );
 			this.listenTo( this, 'update:diff', this.updateLoadingStatus );
 
-			// Set the initial revisions, baseUrl, and mode as provided through settings
-			properties.to = this.revisions.get( revisions.settings.to );
-			properties.from = this.revisions.get( revisions.settings.from );
-			properties.compareTwoMode = revisions.settings.compareTwoMode;
-			properties.baseUrl = revisions.settings.baseUrl;
+
+			// Set the initial revisions, baseUrl, and mode as provided through attributes.
+			var properties = {};
+			properties.to = this.revisions.get( this.get( 'initialDiffState' ).to );
+			properties.from = this.revisions.get( this.get( 'initialDiffState' ).from );
+			properties.compareTwoMode = this.revisions.get( this.get( 'initialDiffState' ).compareTwoMode );
 			this.set( properties );
 
 			// Start the router if browser supports History API
@@ -1100,7 +1088,18 @@ window.wp = window.wp || {};
 	// Initialize the revisions UI.
 	revisions.init = function() {
 		revisions.view.frame = new revisions.view.Frame({
-			model: new revisions.model.FrameState({}, {
+			model: new revisions.model.FrameState({
+				initialDiffState: {
+					// wp_localize_script doesn't stringifies ints, so cast them.
+					to: parseInt( revisions.settings.to, 10 ),
+					from: parseInt( revisions.settings.from, 10 ),
+					// wp_localize_script does not allow for top-level booleans so do a comparator here.
+					compareTwoMode: ( revisions.settings.compareTwoMode === '1' )
+				},
+				diffData: revisions.settings.diffData,
+				baseUrl: revisions.settings.baseUrl,
+				postId: parseInt( revisions.settings.postId, 10 )
+			}, {
 				revisions: new revisions.model.Revisions( revisions.settings.revisionData )
 			})
 		}).render();
