diff --git a/core/modules/action/src/Tests/BulkFormTest.php b/core/modules/action/src/Tests/BulkFormTest.php
index f92329c..3c02f62 100644
--- a/core/modules/action/src/Tests/BulkFormTest.php
+++ b/core/modules/action/src/Tests/BulkFormTest.php
@@ -148,7 +148,11 @@ public function testBulkForm() {
     }
     $edit += array('action' => 'node_delete_action');
     $this->drupalPostForm(NULL, $edit, t('Apply'));
+    // Make sure we don't show an action message while we are still
+    // on the confirmation page.
+    $this->assertNoText(t('Delete content was applied to 5 items.'));
     $this->drupalPostForm(NULL, array(), t('Delete'));
+    $this->assertText(t('Deleted 5 posts.'));
     // Check if we got redirected to the original page.
     $this->assertUrl('test_bulk_form');
   }
diff --git a/core/modules/system/src/Plugin/views/field/BulkForm.php b/core/modules/system/src/Plugin/views/field/BulkForm.php
index f4a2545..2e61f6e 100644
--- a/core/modules/system/src/Plugin/views/field/BulkForm.php
+++ b/core/modules/system/src/Plugin/views/field/BulkForm.php
@@ -288,13 +288,16 @@ public function viewsFormSubmit(&$form, FormStateInterface $form_state) {
         );
         $form_state->setRedirect($operation_definition['confirm_form_route_name'], array(), $options);
       }
-
-      if ($count) {
-        drupal_set_message($this->formatPlural($count, '%action was applied to @count item.', '%action was applied to @count items.', array(
-          '%action' => $action->label(),
-        )));
+      else {
+        // Don't display the message unless there are some elements affected and
+        // there is not a confirmation form.
+        $count = count(array_filter($form_state->getValue($this->options['id'])));
+        if ($count) {
+          drupal_set_message($this->formatPlural($count, '%action was applied to @count item.', '%action was applied to @count items.', array(
+            '%action' => $action->label(),
+          )));
+        }
       }
-
     }
   }
 
