diff --git a/core/lib/Drupal/Core/Entity/EntityListBuilder.php b/core/lib/Drupal/Core/Entity/EntityListBuilder.php
index dbc77c9..626a105 100644
--- a/core/lib/Drupal/Core/Entity/EntityListBuilder.php
+++ b/core/lib/Drupal/Core/Entity/EntityListBuilder.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\Entity;
 
 use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\Routing\RedirectDestinationTrait;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\Component\Utility\SafeMarkup;
 
@@ -18,6 +19,8 @@
  */
 class EntityListBuilder extends EntityHandlerBase implements EntityListBuilderInterface, EntityHandlerInterface {
 
+  use RedirectDestinationTrait;
+
   /**
    * The entity storage class.
    *
@@ -149,6 +152,7 @@ protected function getDefaultOperations(EntityInterface $entity) {
         'title' => $this->t('Delete'),
         'weight' => 100,
         'url' => $entity->urlInfo('delete-form'),
+        'query' => $this->getDestinationArray(),
       );
     }
 
diff --git a/core/modules/block/src/Tests/BlockUiTest.php b/core/modules/block/src/Tests/BlockUiTest.php
index 4dc388f..c92418b 100644
--- a/core/modules/block/src/Tests/BlockUiTest.php
+++ b/core/modules/block/src/Tests/BlockUiTest.php
@@ -214,4 +214,31 @@ public function testBlockPlacementIndicator() {
     $this->assertUrl('admin/structure/block/list/classy');
   }
 
+  /**
+   * Tests that the redirect destination is correct after deleting a block.
+   */
+  public function testBlockDeleteDestination() {
+    // Enable a second theme.
+    \Drupal::service('theme_handler')->install(['bartik']);
+
+    // Delete the first block in the other theme.
+    $this->drupalGet('admin/structure/block/list/bartik');
+    $this->clickLink('Delete');
+    $this->drupalPostForm(NULL, [], 'Delete');
+
+    // Ensure we are taken back to the block list for this theme, and that the
+    // block was deleted.
+    $this->assertUrl('admin/structure/block/list/bartik');
+    $this->assertRaw(t('The block %name has been deleted.', ['%name' => $this->blocks[1]->label()]));
+
+    // Delete the second block in the other theme.
+    $this->drupalGet('admin/structure/block/list/bartik', ['query' => ['destination' => 'admin']]);
+    $this->clickLink('Delete');
+    $this->drupalPostForm(NULL, [], 'Delete');
+
+    // Ensure the ?destination string is respected.
+    $this->assertUrl('admin');
+    $this->assertRaw(t('The block %name has been deleted.', ['%name' => $this->blocks[0]->label()]));
+  }
+
 }
diff --git a/core/modules/node/src/NodeListBuilder.php b/core/modules/node/src/NodeListBuilder.php
index 7acbfc9..099f391 100644
--- a/core/modules/node/src/NodeListBuilder.php
+++ b/core/modules/node/src/NodeListBuilder.php
@@ -32,13 +32,6 @@ class NodeListBuilder extends EntityListBuilder {
   protected $dateFormatter;
 
   /**
-   * The redirect destination service.
-   *
-   * @var \Drupal\Core\Routing\RedirectDestinationInterface
-   */
-  protected $redirectDestination;
-
-  /**
    * Constructs a new NodeListBuilder object.
    *
    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
@@ -140,7 +133,7 @@ public function buildRow(EntityInterface $entity) {
   protected function getDefaultOperations(EntityInterface $entity) {
     $operations = parent::getDefaultOperations($entity);
 
-    $destination = $this->redirectDestination->getAsArray();
+    $destination = $this->getDestinationArray();
     foreach ($operations as $key => $operation) {
       $operations[$key]['query'] = $destination;
     }
diff --git a/core/modules/user/src/UserListBuilder.php b/core/modules/user/src/UserListBuilder.php
index 7575b86..768ab3e 100644
--- a/core/modules/user/src/UserListBuilder.php
+++ b/core/modules/user/src/UserListBuilder.php
@@ -38,13 +38,6 @@ class UserListBuilder extends EntityListBuilder {
   protected $dateFormatter;
 
   /**
-   * The redirect destination service.
-   *
-   * @var \Drupal\Core\Routing\RedirectDestinationInterface
-   */
-  protected $redirectDestination;
-
-  /**
    * Constructs a new UserListBuilder object.
    *
    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
@@ -162,8 +155,7 @@ public function buildRow(EntityInterface $entity) {
   public function getOperations(EntityInterface $entity) {
     $operations = parent::getOperations($entity);
     if (isset($operations['edit'])) {
-      $destination = $this->redirectDestination->getAsArray();
-      $operations['edit']['query'] = $destination;
+      $operations['edit']['query'] = $this->getDestinationArray();
     }
     return $operations;
   }
