diff --git a/panelizer.module b/panelizer.module
index 04f67b1..1fafe9e 100644
--- a/panelizer.module
+++ b/panelizer.module
@@ -1272,6 +1272,15 @@ function panelizer_features_pipe_panelizer_defaults_alter(&$more, $data, $export
       'panelizer_' . $entity_type . ':' . $bundle . '_default',
     );
 
+    // Add default display variables for each view mode.
+    $entity_info = entity_get_info($entity_type);
+    $default_base = 'panelizer_default_' . $entity_type . ':' . $bundle . ':';
+    foreach ($entity_info['view modes'] as $view_mode => $view_info) {
+      $variables[] = $default_base . $view_mode;
+    }
+    $variables[] = $default_base . 'page_manager';
+    $variables[] = $default_base . 'default';
+
     foreach ($variables as $variable) {
       $more['variable'][$variable] = $variable;
     }
diff --git a/plugins/entity/PanelizerEntityDefault.class.php b/plugins/entity/PanelizerEntityDefault.class.php
index 20ff5e4..c9b33fc 100644
--- a/plugins/entity/PanelizerEntityDefault.class.php
+++ b/plugins/entity/PanelizerEntityDefault.class.php
@@ -610,6 +610,40 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
         ),
         '#description' => t('If checked multiple panels can be created and each entity will get a selector to choose which panel to use.'),
       );
+
+      // Obtain a list of all available panels for this view mode / bundle.
+      $panelizers = $this->get_default_panelizer_objects($bundle . '.' . $view_mode);
+      $options = array();
+      foreach ($panelizers as $name => $panelizer) {
+        // Don't show disabled displays.
+        if (empty($panelizer->disabled)) {
+          $options[$name] = $panelizer->title;
+        }
+      }
+
+      // Only show the selector if there is more than one item to select from.
+      if (!empty($options) && count($options) > 1) {
+        // The default display to be used if nothing found.
+        $default_name = implode(':', array($this->entity_type, $bundle, 'default'));
+        $variable_name = implode('_', array('panelizer_default', $this->entity_type, $bundle, $view_mode));
+        if ($view_mode != 'page_manager') {
+          $default_name .= ':' . $view_mode;
+        }
+
+        $form['panelizer']['view modes'][$view_mode]['default display'] = array(
+          '#title' => t('Default panel'),
+          '#type' => 'select',
+          '#options' => $options,
+          '#default_value' => variable_get($variable_name, $default_name),
+          '#states' => array(
+            'visible' => array(
+              '#panelizer-status' => array('checked' => TRUE),
+              '#panelizer-' . $view_mode . '-status' => array('checked' => TRUE),
+            ),
+          ),
+          '#description' => t('The default panel to be used.'),
+        );
+      }
     }
 
     array_unshift($form['#submit'], 'panelizer_entity_default_bundle_form_submit');
@@ -655,6 +689,14 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
           $panelizer->name .= ':' . $panelizer->view_mode;
         }
 
+        // The default display selection.
+        $variable_name = 'panelizer_default_' . $this->entity_type . ':' . $bundle . ':' . $panelizer->view_mode;
+        $default_layout = variable_get($variable_name, NULL);
+        if ($default_layout) {
+          variable_del($variable_name);
+          variable_set($variable_name, $default_layout);
+        }
+
         $panelizer->panelizer_key = $new_bundle;
         // If there's a pnid this should change the name and retain the pnid.
         // If there is no pnid this will create a new one in the database
@@ -666,6 +708,16 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
       }
     }
 
+    // Save the default displays for this bundle to a separate variable so that
+    // it may be controlled separately.
+    foreach ($this->get_default_panelizer_objects($bundle) as $panelizer) {
+      if (isset($form_state['values']['panelizer']['view modes'][$panelizer->view_mode]['default display'])) {
+        $variable_name = implode('_', array('panelizer_default', $this->entity_type, $bundle, $panelizer->view_mode));
+        variable_set($variable_name, $form_state['values']['panelizer']['view modes'][$panelizer->view_mode]['default display']);
+        unset($form_state['values']['panelizer']['view modes'][$panelizer->view_mode]['default display']);
+      }
+    }
+
     variable_set('panelizer_defaults_' . $this->entity_type . '_' . $new_bundle, $form_state['values']['panelizer']);
 
     // Unset this so that the type save forms don't try to save it to variables.
@@ -1066,10 +1118,12 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
       }
       else {
         if ($this->has_default_panel($view_bundle)) {
-          $name = implode(':', array($this->entity_type, $bundle, 'default'));
+          $default_name = implode(':', array($this->entity_type, $bundle, 'default'));
+          $variable_name = implode('_', array('panelizer_default', $this->entity_type, $bundle, $view_mode));
           if ($view_mode != 'page_manager') {
-            $name .= ':' . $view_mode;
+            $default_name .= ':' . $view_mode;
           }
+          $name = variable_get($variable_name, $default_name);
         }
         else {
           $name = '';
