Index: src/wp-includes/post.php
===================================================================
--- src/wp-includes/post.php	(revision 41270)
+++ src/wp-includes/post.php	(working copy)
@@ -2648,9 +2648,20 @@
 	 */
 	do_action( 'untrash_post', $post_id );
 
-	$post_status = get_post_meta($post_id, '_wp_trash_meta_status', true);
+	$previous_status = get_post_meta( $post_id, '_wp_trash_meta_status', true );
 
-	$post['post_status'] = $post_status;
+	/**
+	 * Filter the `post_status` for a post when it is untrashed (restored).
+	 *
+	 * By default, posts that are restored will be assigned a post_status
+	 * of `draft`. Return the `$previous_status` in order to assign the
+	 * post status that the post had before it was trashed.
+	 *
+	 * @param string $new_status The status for a restored post.
+	 * @param int    $post_id The post id of the post being restored.
+	 * @param string $previous_status The status of the post before it was trashed.
+	 */
+	$post['post_status'] = apply_filters( 'wp_untrash_post_status', 'draft', $post_id, $previous_status );
 
 	delete_post_meta($post_id, '_wp_trash_meta_status');
 	delete_post_meta($post_id, '_wp_trash_meta_time');
