Index: src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php	(revision 39083)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php	(working copy)
@@ -726,7 +726,7 @@
 
 		$request->set_param( 'context', 'edit' );
 
-		$response = $this->prepare_item_for_response( $comment, $request );
+		$previous = $this->prepare_item_for_response( $comment, $request );
 
 		if ( $force ) {
 			$result = wp_delete_comment( $comment->comment_ID, true );
@@ -747,6 +747,9 @@
 			return new WP_Error( 'rest_cannot_delete', __( 'The comment cannot be deleted.' ), array( 'status' => 500 ) );
 		}
 
+		$response = new WP_REST_Response();
+		$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+
 		/**
 		 * Fires after a comment is deleted via the REST API.
 		 *
Index: src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php	(revision 39084)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php	(working copy)
@@ -749,11 +749,13 @@
 
 		$request->set_param( 'context', 'edit' );
 
-		$response = $this->prepare_item_for_response( $post, $request );
 
 		// If we're forcing, then delete permanently.
 		if ( $force ) {
+			$previous = $this->prepare_item_for_response( $post, $request );
 			$result = wp_delete_post( $id, true );
+			$response = new WP_REST_Response();
+			$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
 		} else {
 			// If we don't support trashing for this type, error out.
 			if ( ! $supports_trash ) {
@@ -768,6 +770,8 @@
 			// (Note that internally this falls through to `wp_delete_post` if
 			// the trash is disabled.)
 			$result = wp_trash_post( $id );
+			$post = $this->get_post( $id );
+			$response = $this->prepare_item_for_response( $post, $request );
 		}
 
 		if ( ! $result ) {
Index: src/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php	(revision 39083)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php	(working copy)
@@ -220,6 +220,9 @@
 	 * @return true|WP_Error True on success, or WP_Error object on failure.
 	 */
 	public function delete_item( $request ) {
+		$revision = $this->get_post( $request['id'] );
+		$previous = $this->prepare_item_for_response( $revision, $request );
+
 		$result = wp_delete_post( $request['id'], true );
 
 		/**
@@ -234,11 +237,13 @@
 		 */
 		do_action( 'rest_delete_revision', $result, $request );
 
-		if ( $result ) {
-			return true;
-		} else {
+		if ( ! $result ) {
 			return new WP_Error( 'rest_cannot_delete', __( 'The post cannot be deleted.' ), array( 'status' => 500 ) );
 		}
+
+		$response = new WP_REST_Response();
+		$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+		return $response;
 	}
 
 	/**
Index: src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php	(revision 39083)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php	(working copy)
@@ -573,7 +573,7 @@
 
 		$request->set_param( 'context', 'view' );
 
-		$response = $this->prepare_item_for_response( $term, $request );
+		$previous = $this->prepare_item_for_response( $term, $request );
 
 		$retval = wp_delete_term( $term->term_id, $term->taxonomy );
 
@@ -581,6 +581,9 @@
 			return new WP_Error( 'rest_cannot_delete', __( 'The resource cannot be deleted.' ), array( 'status' => 500 ) );
 		}
 
+		$response = new WP_REST_Response();
+		$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+
 		/**
 		 * Fires after a single term is deleted via the REST API.
 		 *
Index: src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php	(revision 39085)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php	(working copy)
@@ -620,7 +620,7 @@
 
 		$request->set_param( 'context', 'edit' );
 
-		$response = $this->prepare_item_for_response( $user, $request );
+		$previous = $this->prepare_item_for_response( $user, $request );
 
 		/** Include admin user functions to get access to wp_delete_user() */
 		require_once ABSPATH . 'wp-admin/includes/user.php';
@@ -631,6 +631,9 @@
 			return new WP_Error( 'rest_cannot_delete', __( 'The resource cannot be deleted.' ), array( 'status' => 500 ) );
 		}
 
+		$response = new WP_REST_Response();
+		$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+
 		/**
 		 * Fires immediately after a user is deleted via the REST API.
 		 *
Index: tests/phpunit/tests/rest-api/rest-categories-controller.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-categories-controller.php	(revision 39083)
+++ tests/phpunit/tests/rest-api/rest-categories-controller.php	(working copy)
@@ -716,7 +716,8 @@
 		$response = $this->server->dispatch( $request );
 		$this->assertEquals( 200, $response->get_status() );
 		$data = $response->get_data();
-		$this->assertEquals( 'Deleted Category', $data['name'] );
+		$this->assertTrue( $data['deleted'] );
+		$this->assertEquals( 'Deleted Category', $data['previous']['name'] );
 	}
 
 	public function test_delete_item_force_false() {
Index: tests/phpunit/tests/rest-api/rest-comments-controller.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-comments-controller.php	(revision 39083)
+++ tests/phpunit/tests/rest-api/rest-comments-controller.php	(working copy)
@@ -1622,7 +1622,8 @@
 		$response = $this->server->dispatch( $request );
 		$this->assertEquals( 200, $response->get_status() );
 		$data = $response->get_data();
-		$this->assertEquals( self::$post_id, $data['post'] );
+		$this->assertTrue( $data['deleted'] );
+		$this->assertEquals( self::$post_id, $data['previous']['post'] );
 	}
 
 	public function test_delete_item_skip_trash() {
@@ -1639,7 +1640,8 @@
 		$response = $this->server->dispatch( $request );
 		$this->assertEquals( 200, $response->get_status() );
 		$data = $response->get_data();
-		$this->assertEquals( self::$post_id, $data['post'] );
+		$this->assertTrue( $data['deleted'] );
+		$this->assertNotEmpty( $data['previous']['post'] );
 	}
 
 	public function test_delete_item_already_trashed() {
Index: tests/phpunit/tests/rest-api/rest-posts-controller.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-posts-controller.php	(revision 39084)
+++ tests/phpunit/tests/rest-api/rest-posts-controller.php	(working copy)
@@ -1830,6 +1830,7 @@
 		$this->assertEquals( 200, $response->get_status() );
 		$data = $response->get_data();
 		$this->assertEquals( 'Deleted post', $data['title']['raw'] );
+		$this->assertEquals( 'trash', $data['status'] );
 	}
 
 	public function test_delete_item_skip_trash() {
@@ -1843,7 +1844,8 @@
 		$this->assertNotInstanceOf( 'WP_Error', $response );
 		$this->assertEquals( 200, $response->get_status() );
 		$data = $response->get_data();
-		$this->assertEquals( 'Deleted post', $data['title']['raw'] );
+		$this->assertTrue( $data['deleted'] );
+		$this->assertNotEmpty( $data['previous'] );
 	}
 
 	public function test_delete_item_already_trashed() {
Index: tests/phpunit/tests/rest-api/rest-tags-controller.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-tags-controller.php	(revision 39083)
+++ tests/phpunit/tests/rest-api/rest-tags-controller.php	(working copy)
@@ -599,7 +599,8 @@
 		$response = $this->server->dispatch( $request );
 		$this->assertEquals( 200, $response->get_status() );
 		$data = $response->get_data();
-		$this->assertEquals( 'Deleted Tag', $data['name'] );
+		$this->assertTrue( $data['deleted'] );
+		$this->assertEquals( 'Deleted Tag', $data['previous']['name'] );
 	}
 
 	public function test_delete_item_force_false() {
@@ -641,7 +642,8 @@
 
 		$this->assertEquals( 200, $response->get_status() );
 		$data = $response->get_data();
-		$this->assertEquals( 'Deleted Tag', $data['name'] );
+		$this->assertTrue( $data['deleted'] );
+		$this->assertEquals( 'Deleted Tag', $data['previous']['name'] );
 	}
 
 	public function grant_delete_term( $caps, $cap ) {
Index: tests/phpunit/tests/rest-api/rest-users-controller.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-users-controller.php	(revision 39085)
+++ tests/phpunit/tests/rest-api/rest-users-controller.php	(working copy)
@@ -1048,7 +1048,8 @@
 
 		$this->assertEquals( 200, $response->get_status() );
 		$data = $response->get_data();
-		$this->assertEquals( 'Deleted User', $data['name'] );
+		$this->assertTrue( $data['deleted'] );
+		$this->assertEquals( 'Deleted User', $data['previous']['name'] );
 	}
 
 	public function test_delete_item_no_trash() {
