diff --git a/core/lib/Drupal/Core/Entity/EntityManager.php b/core/lib/Drupal/Core/Entity/EntityManager.php
index b774036..242958a 100644
--- a/core/lib/Drupal/Core/Entity/EntityManager.php
+++ b/core/lib/Drupal/Core/Entity/EntityManager.php
@@ -1039,45 +1039,44 @@ protected function getDisplayModeOptions($display_type, $entity_type_id) {
    *   An array of display mode labels, keyed by the display mode ID.
    */
   protected function getDisplayModeOptionsByBundle($display_type, $entity_type_id, $bundle, $include_disabled) {
-    $load_ids = array();
-    $display_mode_options = array();
-    $display_type_entity_name = ($display_type == 'form_mode') ? 'entity_form_display' : 'entity_view_display';
-    $entity_type = $this->getDefinition($display_type_entity_name);
-    $config_prefix = $entity_type->getConfigPrefix();
+    $options = array();
 
-    // Load all the entity's display modes.
+    // Collect all the entity's display modes.
     $display_modes = $this->getDisplayModesByEntityType($display_type, $entity_type_id);
-    // Set it as a list and always include our default view mode
     foreach ($display_modes as $display_mode_id => $display_mode) {
-      $display_mode_options[$display_mode_id] = $display_mode['label'];
-    }
-
-    // Get the list of available entity displays for the current bundle.
-    $ids = $this->configFactory->listAll($config_prefix . '.' . $entity_type_id . '.' . $bundle);
-    foreach ($ids as $id) {
-      $load_ids[] = str_replace($config_prefix . '.', '', $id);
+      $options[$display_mode_id] = $display_mode['label'];
     }
 
-    // Generate the display options array. We don't need to load the displays
-    // if we don't care about the status.
+    // Remove the displays that are not set to active for this bundle if they
+    // should not be returned.
     if (!$include_disabled) {
-      $entity_displays = entity_load_multiple($display_type_entity_name, $load_ids);
-      foreach ($entity_displays as $display) {
-        // unset the display mode from the list if it is disabled.
+      $load_ids = array();
+      $display_entity_type_id = ($display_type == 'form_mode') ? 'entity_form_display' : 'entity_view_display';
+      $config_prefix = $this->getDefinition($display_entity_type_id)->getConfigPrefix();
+
+      // Get the list of available entity displays for the current bundle.
+      $ids = $this->configFactory->listAll($config_prefix . '.' . $entity_type_id . '.' . $bundle);
+      foreach ($ids as $id) {
+        $load_ids[] = str_replace($config_prefix . '.', '', $id);
+      }
+      // Load the available entity displays.
+      $displays = $this->getStorage($display_entity_type_id)->loadMultiple($load_ids);
+
+      foreach ($displays as $display) {
+        // Unset the display mode from the list if it is disabled.
         if (!$display->status()) {
-          $display_mode_name = $display->get('mode');
-          unset($display_mode_options[$display_mode_name]);
+          unset($options[$display->get('mode')]);
         }
       }
     }
 
-    // Add the default option if we have more than 1 option.
-    if (count($display_mode_options) > 1) {
-      array_unshift($display_mode_options, array('default' => 'Default'));
-      $display_mode_options['default'] = t('Default');
+    // Add the default mode to the top of the list if we have more than
+    // 1 option.
+    if (count($options) > 1) {
+      array_unshift($options, array('default' => t('Default')));
     }
 
-    return $display_mode_options;
+    return $options;
   }
 
   /**
