diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php
index d3f665d..131e34c 100644
--- a/src/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php
+++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php
@@ -338,6 +338,9 @@ class WP_REST_Revisions_Controller extends WP_REST_Controller {
 	 * @return WP_REST_Response Response object.
 	 */
 	public function prepare_item_for_response( $post, $request ) {
+		$GLOBALS['post'] = $post;
+
+		setup_postdata( $post );
 
 		$schema = $this->get_item_schema();
 
diff --git a/tests/phpunit/tests/rest-api/rest-revisions-controller.php b/tests/phpunit/tests/rest-api/rest-revisions-controller.php
index 4557004..cdb7e2b 100644
--- a/tests/phpunit/tests/rest-api/rest-revisions-controller.php
+++ b/tests/phpunit/tests/rest-api/rest-revisions-controller.php
@@ -1,3 +1,4 @@
+
 <?php
 /**
  * Unit tests covering WP_REST_Revisions_Controller functionality.
@@ -335,4 +336,16 @@ class WP_Test_REST_Revisions_Controller extends WP_Test_REST_Controller_Testcase
 		$this->assertEquals( rest_url( '/wp/v2/' . $parent_base . '/' . $revision->post_parent ), $links['parent'][0]['href'] );
 	}
 
+	public function test_get_item_sets_up_postdata() {
+		wp_set_current_user( self::$editor_id );
+		$request = new WP_REST_Request( 'GET', '/wp/v2/posts/' . self::$post_id . '/revisions/' . $this->revision_id1 );
+		$this->server->dispatch( $request );
+
+		$post = get_post();
+		$parent_post_id = wp_is_post_revision ( $post->ID );
+
+		$this->assertEquals( $post->ID, $this->revision_id1 );
+		$this->assertEquals( $parent_post_id, self::$post_id );
+	}
+
 }
