diff --git a/panelizer.module b/panelizer.module
index 9f9dd3e..733b99a 100644
--- a/panelizer.module
+++ b/panelizer.module
@@ -1285,6 +1285,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_' . $entity_type . ':' . $bundle . ':';
+    foreach ($entity_info['view modes'] as $view_mode => $view_info) {
+      $variables[] = $default_base . $view_mode . '_selection';
+    }
+    $variables[] = $default_base . 'page_manager' . '_selection';
+    $variables[] = $default_base . 'default' . '_selection';
+
     foreach ($variables as $variable) {
       $more['variable'][$variable] = $variable;
     }
diff --git a/plugins/entity/PanelizerEntityDefault.class.php b/plugins/entity/PanelizerEntityDefault.class.php
index 1ca3c03..b231541 100644
--- a/plugins/entity/PanelizerEntityDefault.class.php
+++ b/plugins/entity/PanelizerEntityDefault.class.php
@@ -586,7 +586,7 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
         ),
       );
       $form['panelizer']['view modes'][$view_mode]['default'] = array(
-        '#title' => t('Provide default panel'),
+        '#title' => t('Provide initial display'),
         '#type' => 'checkbox',
         '#default_value' => !empty($settings['view modes'][$view_mode]['default']),
         '#id' => 'panelizer-' . $view_mode . '-initial',
@@ -596,9 +596,46 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
             '#panelizer-' . $view_mode . '-status' => array('checked' => TRUE),
           ),
         ),
-        '#description' => t('If checked, a default panel will be utilized for all existing and new entities.'),
+        '#description' => t('If checked, a panel will be provided named "Default".'),
       );
 
+      // Obtain a list of all available panels for this view mode / bundle.
+      $panelizers = $this->get_default_panelizer_objects($bundle . '.' . $view_mode);
+      foreach ($panelizers as $name => $panelizer) {
+        // Don't show disabled displays.
+        if (empty($panelizer->disabled)) {
+          $options[$name] = $panelizer->title;
+        }
+      }
+
+      // The default display to be used if nothing found.
+      $default_name = implode(':', array($this->entity_type, $bundle, 'default'));
+      $variable_name = 'panelizer_' . $this->entity_type . ':' . $bundle . ':' . $view_mode . '_selection';
+      if ($view_mode != 'page_manager') {
+        $default_name .= ':' . $view_mode;
+      }
+      // If this has not been set previously, use the 'default' as the default
+      // selection.
+      $default_value = variable_get($variable_name, FALSE);
+      if ($default_value === FALSE) {
+        $default_value = $default_name;
+      }
+      $form['panelizer']['view modes'][$view_mode]['default display'] = array(
+        '#title' => t('Default panel'),
+        '#type' => 'select',
+        '#options' => $options,
+        '#default_value' => $default_value,
+        '#id' => 'panelizer-' . $view_mode . '-default',
+        '#states' => array(
+          'visible' => array(
+            '#panelizer-status' => array('checked' => TRUE),
+            '#panelizer-' . $view_mode . '-status' => array('checked' => TRUE),
+          ),
+        ),
+        '#description' => t('The default panel to be used. If "Allow panel choice" is not enabled, the item selected here will be used for any @bundle that has not had its display overridden.', array('@bundle' => $bundle)),
+      );
+
+      // Control whether the default can be selected.
       $form['panelizer']['view modes'][$view_mode]['choice'] = array(
         '#title' => t('Allow panel choice'),
         '#type' => 'checkbox',
@@ -610,7 +647,7 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
             '#panelizer-' . $view_mode . '-status' => array('checked' => TRUE),
           ),
         ),
-        '#description' => t('If checked multiple panels can be created and each entity will get a selector to choose which panel to use.'),
+        '#description' => t('If enabled, each @bundle will have an option to choose which panel to use.', array('@bundle' => $bundle)),
       );
     }
 
@@ -632,7 +669,8 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
       $new_bundle = $bundle;
     }
 
-    // Check to see if the bundle has changed. If so we need to move stuff around.
+    // Check to see if the bundle has changed. If so, we need to move stuff
+    // around.
     if ($bundle && $new_bundle != $bundle) {
       // Remove old settings.
       variable_del('panelizer_defaults_' . $this->entity_type . '_' . $bundle);
@@ -657,6 +695,15 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
           $panelizer->name .= ':' . $panelizer->view_mode;
         }
 
+        // The default display selection.
+        $old_variable_name = 'panelizer_' . $this->entity_type . ':' . $bundle . ':' . $panelizer->view_mode . '_selection';
+        $new_variable_name = 'panelizer_' . $this->entity_type . ':' . $new_bundle . ':' . $panelizer->view_mode . '_selection';
+        $default_layout = variable_get($old_variable_name, NULL);
+        if (!is_null($default_layout)) {
+          variable_set($new_variable_name, $default_layout);
+          variable_del($old_variable_name);
+        }
+
         $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
@@ -668,6 +715,18 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
       }
     }
 
+    // Save the default display for this bundle to a variable so that it may be
+    // controlled separately.
+    foreach ($this->get_default_panelizer_objects($new_bundle) as $panelizer) {
+      if (isset($form_state['values']['panelizer']['view modes'][$panelizer->view_mode]['default display'])) {
+        $variable_name = 'panelizer_' . $this->entity_type . ':' . $new_bundle . ':' . $panelizer->view_mode . '_selection';
+        $value = $form_state['values']['panelizer']['view modes'][$panelizer->view_mode]['default display'];
+        variable_set($variable_name, $value);
+        // Don't save the setting with the rest of the settings bundle.
+        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.
@@ -1063,35 +1122,38 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
         }
       }
 
+      // Load the configured default display.
+      $default_name = implode(':', array($this->entity_type, $bundle, 'default'));
+      $variable_name = 'panelizer_' . $this->entity_type . ':' . $bundle . ':' . $view_mode . '_selection';
+      if ($view_mode != 'page_manager') {
+        $default_name .= ':' . $view_mode;
+      }
+      // If this has not been set previously, use the 'default' as the default
+      // selection.
+      $default_value = variable_get($variable_name, FALSE);
+      if ($default_value === FALSE) {
+        $default_value = $default_name;
+      }
+
+      // Override the default if one was previously assigned.
       if (!empty($entity->panelizer[$view_mode]->name)) {
-        $name = $entity->panelizer[$view_mode]->name;
-      }
-      else {
-        if ($this->has_default_panel($view_bundle)) {
-          $name = implode(':', array($this->entity_type, $bundle, 'default'));
-          if ($view_mode != 'page_manager') {
-            $name .= ':' . $view_mode;
-          }
-        }
-        else {
-          $name = '';
-        }
+        $default_value = $entity->panelizer[$view_mode]->name;
       }
 
-      if (!$this->has_default_panel($view_bundle)) {
-        $options = array('' => t('-- No panel --')) + $options;
+      // Only display the selector if options were available.
+      if (!empty($options)) {
+        $widgets[$view_mode]['name'] = array(
+          '#title' => $view_mode_info['label'],
+          '#type' => 'select',
+          '#options' => $options,
+          '#default_value' => $default_value,
+          '#required' => TRUE,
+          // Put these here because submit does not get a real entity with the
+          // actual *(&)ing panelizer.
+          '#revision_id' => isset($entity->panelizer[$view_mode]->revision_id) ? $entity->panelizer[$view_mode]->revision_id : NULL,
+          '#entity_id' => isset($entity->panelizer[$view_mode]->entity_id) ? $entity->panelizer[$view_mode]->entity_id : NULL,
+        );
       }
-
-      $widgets[$view_mode]['name'] = array(
-        '#title' => $view_mode_info['label'],
-        '#type' => 'select',
-        '#options' => $options,
-        '#default_value' => $name,
-        // Put these here because submit does not get a real entity with
-        // the actual *(&)ing panelizer.
-        '#revision_id' => isset($entity->panelizer[$view_mode]->revision_id) ? $entity->panelizer[$view_mode]->revision_id : NULL,
-        '#entity_id' => isset($entity->panelizer[$view_mode]->entity_id) ? $entity->panelizer[$view_mode]->entity_id : NULL,
-      );
     }
 
     if ($widgets) {
@@ -1645,7 +1707,7 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
     if (strpos($bundle, '.') === FALSE) {
       $bundle .= '.page_manager';
     }
-      list($bundle, $view_mode) = explode('.', $bundle);
+    list($bundle, $view_mode) = explode('.', $bundle);
 
     return $this->is_panelized($bundle) && !empty($this->plugin['bundles'][$bundle]['view modes'][$view_mode]['choice']);
   }
@@ -1835,11 +1897,12 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
       '#header' => array(
         array('data' => $this->entity_bundle_label(), 'width' => '15%'),
         t('Panelize'),
-        t('Provide default panel'),
+        t('Provide initial display'),
         t('Allow panel choice'),
+        t('Default panel'),
         array('data' => t('Operations'), 'width' => '50%'),
       ),
-      '#columns' => array('title', 'status', 'default', 'choice', 'links'),
+      '#columns' => array('title', 'status', 'default', 'choice', 'selection', 'links'),
     );
 
     $entity_info = entity_get_info($this->entity_type);
@@ -1951,6 +2014,52 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
           ),
         );
 
+        // @todo: Finish this. DamienMcKenna
+        // 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;
+          }
+        }
+        if (!empty($options)) {
+          ksort($options);
+        }
+
+        // The default display to be used if nothing found.
+        $default_name = implode(':', array($this->entity_type, $bundle, 'default'));
+        $variable_name = 'panelizer_' . $this->entity_type . ':' . $bundle . ':' . $view_mode . '_selection';
+        if ($view_mode != 'page_manager') {
+          $default_name .= ':' . $view_mode;
+        }
+        // If this has not been set previously, use the 'default' as the default
+        // selection.
+        $default_value = variable_get($variable_name, FALSE);
+        if ($default_value === FALSE) {
+          $default_value = $default_name;
+        }
+
+        // First time this is displayed there won't be any defaults assigned, so
+        // show a placeholder indicating the page needs to be saved before they
+        // will show.
+        if (count($options) == 0 && $default_value == $default_name) {
+          $options = array('' => t('Save to access selector'));
+        }
+        $form['entities'][$this->entity_type][$bundle][$view_mode]['selection'] = array(
+          '#type' => 'select',
+          '#options' => $options,
+          '#default_value' => $default_value,
+          '#states' => array(
+            'visible' => array(
+              $bundle_id . '-status' => array('checked' => TRUE),
+              $base_id . '-status' => array('checked' => TRUE),
+            ),
+          ),
+          '#disabled' => count($options) == 1,
+        );
+
         $form['entities'][$this->entity_type][$bundle][$view_mode]['links'] = array(
           '#prefix' => '<div class="container-inline">',
           '#suffix' => '</div>',
@@ -2042,8 +2151,18 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
       foreach ($values as $view_mode => $data) {
         if ($view_mode) {
           $settings['view modes'][$view_mode] = $data;
+
+          // Save the default display for this bundle to a variable so that it
+          // may be controlled separately.
+          if (isset($data['selection'])) {
+            $variable_name = 'panelizer_' . $this->entity_type . ':' . $bundle . ':' . $view_mode . '_selection';
+            variable_set($variable_name, $data['selection']);
+            // Don't save the setting with the rest of the settings bundle.
+            unset($data['selection']);
+          }
         }
       }
+
       variable_set('panelizer_defaults_' . $this->entity_type . '_' . $bundle, $settings);
     }
 
