diff --git a/core/modules/node/src/Form/NodeRevisionDeleteForm.php b/core/modules/node/src/Form/NodeRevisionDeleteForm.php
index 352cef0..143f56d 100644
--- a/core/modules/node/src/Form/NodeRevisionDeleteForm.php
+++ b/core/modules/node/src/Form/NodeRevisionDeleteForm.php
@@ -7,10 +7,12 @@
 
 namespace Drupal\node\Form;
 
+use Drupal\Core\Access\AccessManagerInterface;
 use Drupal\Core\Database\Connection;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Form\ConfirmFormBase;
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Path\PathValidatorInterface;
 use Drupal\Core\Url;
 use Drupal\node\NodeInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -49,6 +51,13 @@ class NodeRevisionDeleteForm extends ConfirmFormBase {
   protected $connection;
 
   /**
+   * The access manager.
+   *
+   * @var \Drupal\Core\Access\AccessManagerInterface
+   */
+  protected $accessManager;
+
+  /**
    * Constructs a new NodeRevisionDeleteForm.
    *
    * @param \Drupal\Core\Entity\EntityStorageInterface $node_storage
@@ -58,10 +67,11 @@ class NodeRevisionDeleteForm extends ConfirmFormBase {
    * @param \Drupal\Core\Database\Connection $connection
    *   The database connection.
    */
-  public function __construct(EntityStorageInterface $node_storage, EntityStorageInterface $node_type_storage, Connection $connection) {
+  public function __construct(EntityStorageInterface $node_storage, EntityStorageInterface $node_type_storage, Connection $connection, AccessManagerInterface $access_manager) {
     $this->nodeStorage = $node_storage;
     $this->nodeTypeStorage = $node_type_storage;
     $this->connection = $connection;
+    $this->accessManager = $access_manager;
   }
 
   /**
@@ -72,7 +82,8 @@ public static function create(ContainerInterface $container) {
     return new static(
       $entity_manager->getStorage('node'),
       $entity_manager->getStorage('node_type'),
-      $container->get('database')
+      $container->get('database'),
+      $container->get('access_manager')
     );
   }
 
@@ -123,16 +134,12 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
     $this->logger('content')->notice('@type: deleted %title revision %revision.', array('@type' => $this->revision->bundle(), '%title' => $this->revision->label(), '%revision' => $this->revision->getRevisionId()));
     $node_type = $this->nodeTypeStorage->load($this->revision->bundle())->label();
     drupal_set_message(t('Revision from %revision-date of @type %title has been deleted.', array('%revision-date' => format_date($this->revision->getRevisionCreationTime()), '@type' => $node_type, '%title' => $this->revision->label())));
-    $form_state->setRedirect(
-      'entity.node.canonical',
-      array('node' => $this->revision->id())
-    );
-    if ($this->connection->query('SELECT COUNT(DISTINCT vid) FROM {node_field_revision} WHERE nid = :nid', array(':nid' => $this->revision->id()))->fetchField() > 1) {
-      $form_state->setRedirect(
-        'entity.node.version_history',
-        array('node' => $this->revision->id())
-      );
+    $route_name = 'entity.node.version_history';
+    $parameters = array('node' => $this->revision->id());
+    if (!$this->accessManager->checkNamedRoute($route_name, $parameters)) {
+      $route_name = 'entity.node.canonical';
     }
+    $form_state->setRedirect($route_name, $parameters);
   }
 
 }
