diff --git a/core/modules/system/src/Plugin/views/field/BulkForm.php b/core/modules/system/src/Plugin/views/field/BulkForm.php
index f9f581b..2678806 100644
--- a/core/modules/system/src/Plugin/views/field/BulkForm.php
+++ b/core/modules/system/src/Plugin/views/field/BulkForm.php
@@ -254,10 +254,12 @@ public function viewsForm(&$form, FormStateInterface $form_state) {
 
     // Only add the bulk form options and buttons if there are results.
     if (!empty($this->view->result)) {
+      $selected = !empty($form_state->getValue($this->options['id'])) ? array_flip(array_filter($form_state->getValue($this->options['id']))) : [];
       // Render checkboxes for all rows.
       $form[$this->options['id']]['#tree'] = TRUE;
       foreach ($this->view->result as $row_index => $row) {
         $entity = $this->getEntityTranslation($this->getEntity($row), $row);
+        $bulk_form_key = $this->calculateEntityBulkFormKey($entity, $use_revision);
 
         $form[$this->options['id']][$row_index] = array(
           '#type' => 'checkbox',
@@ -265,8 +267,8 @@ public function viewsForm(&$form, FormStateInterface $form_state) {
           // only output a generic label.
           '#title' => $this->t('Update this item'),
           '#title_display' => 'invisible',
-          '#default_value' => !empty($form_state->getValue($this->options['id'])[$row_index]) ? 1 : NULL,
-          '#return_value' => $this->calculateEntityBulkFormKey($entity, $use_revision),
+          '#default_value' => isset($selected[$bulk_form_key]) ? 1 : NULL,
+          '#return_value' => $bulk_form_key,
         );
       }
 
