diff --git a/panelizer.install b/panelizer.install
index 3130b2c..a586ab1 100644
--- a/panelizer.install
+++ b/panelizer.install
@@ -463,3 +463,34 @@ function panelizer_update_7110() {
     array('primary key' => array('entity_type', 'entity_id', 'revision_id', 'view_mode'))
   );
 }
+
+/**
+ * Delete all default {panelizer_entity} records.
+ */
+function panelizer_update_7111() {
+  // Loop through all entity types.
+  foreach (entity_get_info() as $entity_type => $entity_info) {
+    // Only proceed if this entity has view modes and bundles.
+    if (!empty($entity_info['view modes']) && is_array($entity_info['view modes'])
+      && !empty($entity_info['bundles']) && is_array($entity_info['bundles'])) {
+      // Also add an item for the 'default' display.
+      $view_modes = $entity_info['view modes'] + array('default');
+      foreach ($view_modes as $view_mode => $view_mode_info) {
+        foreach ($entity_info['bundles'] as $bundle => $bundle_info) {
+          $default_name = implode(':', array($entity_type, $bundle, 'default'));
+          if ($view_mode != 'page_manager') {
+            $default_name .= ':' . $view_mode;
+          }
+          // Update each record that has the default selection. Records are
+					// using a default value if a) the 'name' is the same as a default,
+					// and b) the did is 0.
+          db_delete('panelizer_entity')
+						->condition('entity_type', $entity_type)
+            ->condition('name', $default_name)
+						->condition('did', 0)
+            ->execute();
+        }
+      }
+    }
+  }
+}
diff --git a/panelizer.module b/panelizer.module
index 9f9dd3e..c75afa4 100644
--- a/panelizer.module
+++ b/panelizer.module
@@ -1231,6 +1231,7 @@ function panelizer_panels_cache_save($argument, $cache) {
     if ($entities[$entity_id] && $entities[$entity_id]->panelizer[$view_mode]) {
       $entities[$entity_id]->panelizer[$view_mode]->display = $cache->display;
       $entities[$entity_id]->panelizer[$view_mode]->display_is_modified = TRUE;
+      $entities[$entity_id]->panelizer[$view_mode]->entity_custom_panelizer = TRUE;
       $handler->entity_save($entities[$entity_id]);
       // The display may have been cloned in the save process, so we need
       // to be sure to put the old display back, and its contexts.
diff --git a/plugins/entity/PanelizerEntityDefault.class.php b/plugins/entity/PanelizerEntityDefault.class.php
index 20ff5e4..15a20e7 100644
--- a/plugins/entity/PanelizerEntityDefault.class.php
+++ b/plugins/entity/PanelizerEntityDefault.class.php
@@ -767,6 +767,9 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
         // Otherwise unpack the loaded panelizer.
         else if (!empty($panelizers[$entity_id][$view_mode])) {
           $entity->panelizer[$view_mode] = ctools_export_unpack_object('panelizer_entity', $panelizers[$entity_id][$view_mode]);
+          // Mark this panelizer as entity custom.
+          $entity->panelizer[$view_mode]->entity_custom_panelizer = TRUE;
+
           // If somehow we have no name AND no did, fill in the default.
           // This can happen if use of defaults has switched around maybe?
           if (empty($entity->panelizer[$view_mode]->did) &&
@@ -876,43 +879,47 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
         $view_mode = 'page_manager';
       }
 
-      // On entity insert, we only write the display if it is not a default.
-      // That probably means it came from an export or deploy or something
-      // along those lines.
-      if (empty($panelizer->name) && !empty($panelizer->display)) {
-        // Ensure we don't accidentally overwrite existing display
-        // data or anything silly like that.
-        $panelizer = $this->clone_panelizer($panelizer, $entity);
-        // First write the display
-        panels_save_display($panelizer->display);
+      // Save the panelizer configuration only if it's already entity specific.
+      if (!empty($entity->panelizer[$view_mode]->entity_custom_panelizer)) {
 
-        // Make sure we have the new did.
-        $panelizer->did = $panelizer->display->did;
+        // On entity insert, we only write the display if it is not a default.
+        // That probably means it came from an export or deploy or something
+        // along those lines.
+        if (empty($panelizer->name) && !empty($panelizer->display)) {
+          // Ensure we don't accidentally overwrite existing display
+          // data or anything silly like that.
+          $panelizer = $this->clone_panelizer($panelizer, $entity);
+          // First write the display
+          panels_save_display($panelizer->display);
 
-        // Make sure there is a view mode.
-        if (empty($panelizer->view_mode)) {
-          $panelizer->view_mode = $view_mode;
-        }
+          // Make sure we have the new did.
+          $panelizer->did = $panelizer->display->did;
 
-        // And write the new record.
-        drupal_write_record('panelizer_entity', $panelizer);
-      }
-      else {
-        // We write the panelizer record to record which name is being used.
-        // And ensure the did is NULL:
-        $panelizer->did = NULL;
-        $panelizer->entity_type = $this->entity_type;
-        $panelizer->entity_id = $entity_id;
-        // The (int) ensures that entities that do not support revisions work
-        // since the revision_id cannot be NULL.
-        $panelizer->revision_id = (int) $revision_id;
+          // Make sure there is a view mode.
+          if (empty($panelizer->view_mode)) {
+            $panelizer->view_mode = $view_mode;
+          }
 
-        // Make sure there is a view mode.
-        if (empty($panelizer->view_mode)) {
-          $panelizer->view_mode = $view_mode;
+          // And write the new record.
+          drupal_write_record('panelizer_entity', $panelizer);
         }
+        else {
+          // We write the panelizer record to record which name is being used.
+          // And ensure the did is NULL:
+          $panelizer->did = NULL;
+          $panelizer->entity_type = $this->entity_type;
+          $panelizer->entity_id = $entity_id;
+          // The (int) ensures that entities that do not support revisions work
+          // since the revision_id cannot be NULL.
+          $panelizer->revision_id = (int) $revision_id;
+
+          // Make sure there is a view mode.
+          if (empty($panelizer->view_mode)) {
+            $panelizer->view_mode = $view_mode;
+          }
 
-        drupal_write_record('panelizer_entity', $panelizer);
+          drupal_write_record('panelizer_entity', $panelizer);
+        }
       }
     }
   }
@@ -939,71 +946,75 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
         $view_mode = 'page_manager';
       }
 
-      if ($this->supports_revisions) {
-        if (empty($panelizer->revision_id) || $panelizer->revision_id != $revision_id) {
-          $panelizer->revision_id = $revision_id;
-          $update = array();
-        }
-        else {
-          $update = array('entity_type', 'revision_id', 'view_mode');
-        }
-      }
-      else {
-        if (empty($panelizer->entity_id)) {
-          $update = array();
+      // Save the panelizer configuration only if it's already entity specific.
+      if (!empty($entity->panelizer[$view_mode]->entity_custom_panelizer)) {
+
+        if ($this->supports_revisions) {
+          if (empty($panelizer->revision_id) || $panelizer->revision_id != $revision_id) {
+            $panelizer->revision_id = $revision_id;
+            $update = array();
+          }
+          else {
+            $update = array('entity_type', 'revision_id', 'view_mode');
+          }
         }
         else {
-          $update = array('entity_type', 'entity_id', 'view_mode');
-        }
-      }
-
-      // The editor will set this flag if the display is modified. This lets
-      // us know if we need to clone a new display or not.
-      // NOTE: This means that when exporting or deploying, we need to be sure
-      // to set the display_is_modified flag to ensure this gets written.
-      if (!empty($panelizer->display_is_modified)) {
-        // If this is a new entry or the entry is using a display from a default,
-        // clone the display.
-        if (!$update || empty($panelizer->did)) {
-          $entity->panelizer[$view_mode] = $panelizer = $this->clone_panelizer($panelizer, $entity);
-
-          // Update the cache key since we are adding a new display
-          $panelizer->display->cache_key = implode(':', array('panelizer', $panelizer->entity_type, $panelizer->entity_id, $view_mode));
+          if (empty($panelizer->entity_id)) {
+            $update = array();
+          }
+          else {
+            $update = array('entity_type', 'entity_id', 'view_mode');
+          }
         }
 
-        // First write the display
-        panels_save_display($panelizer->display);
+        // The editor will set this flag if the display is modified. This lets
+        // us know if we need to clone a new display or not.
+        // NOTE: This means that when exporting or deploying, we need to be sure
+        // to set the display_is_modified flag to ensure this gets written.
+        if (!empty($panelizer->display_is_modified)) {
+          // If this is a new entry or the entry is using a display from a default,
+          // clone the display.
+          if (!$update || empty($panelizer->did)) {
+            $entity->panelizer[$view_mode] = $panelizer = $this->clone_panelizer($panelizer, $entity);
 
-        // Make sure we have the did.
-        $panelizer->did = $panelizer->display->did;
+            // Update the cache key since we are adding a new display
+            $panelizer->display->cache_key = implode(':', array('panelizer', $panelizer->entity_type, $panelizer->entity_id, $view_mode));
+          }
 
-        // Ensure that we always write this as NULL when we have our own panel:
-        $panelizer->name = NULL;
+          // First write the display
+          panels_save_display($panelizer->display);
 
-        // Make sure there is a view mode.
-        if (empty($panelizer->view_mode)) {
-          $panelizer->view_mode = $view_mode;
-        }
+          // Make sure we have the did.
+          $panelizer->did = $panelizer->display->did;
 
-        // And write the new record.
-        return drupal_write_record('panelizer_entity', $panelizer, $update);
-      }
-      else {
-        $panelizer->entity_type = $this->entity_type;
-        $panelizer->entity_id = $entity_id;
-        // The (int) ensures that entities that do not support revisions work
-        // since the revision_id cannot be NULL.
-        $panelizer->revision_id = (int) $revision_id;
-
-        // Make sure there is a view mode.
-        if (empty($panelizer->view_mode)) {
-          $panelizer->view_mode = $view_mode;
+          // Ensure that we always write this as NULL when we have our own panel:
+          $panelizer->name = NULL;
+
+          // Make sure there is a view mode.
+          if (empty($panelizer->view_mode)) {
+            $panelizer->view_mode = $view_mode;
+          }
+
+          // And write the new record.
+          return drupal_write_record('panelizer_entity', $panelizer, $update);
         }
+        else {
+          $panelizer->entity_type = $this->entity_type;
+          $panelizer->entity_id = $entity_id;
+          // The (int) ensures that entities that do not support revisions work
+          // since the revision_id cannot be NULL.
+          $panelizer->revision_id = (int) $revision_id;
 
-        drupal_write_record('panelizer_entity', $panelizer, $update);
-      }
+          // Make sure there is a view mode.
+          if (empty($panelizer->view_mode)) {
+            $panelizer->view_mode = $view_mode;
+          }
+
+          drupal_write_record('panelizer_entity', $panelizer, $update);
+        }
     }
   }
+  }
 
   public function hook_entity_delete($entity) {
     $this->delete_entity_panelizer($entity);
@@ -1447,6 +1458,8 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
     if (!empty($form_state['executed'])) {
       drupal_set_message(t('The settings have been updated.'));
       $entity->panelizer[$view_mode] = $form_state['panelizer'];
+      // Make sure this is recognized as entity specific configuration.
+      $entity->panelizer[$view_mode]->entity_custom_panelizer = TRUE;
       // Make sure that entity_save knows that the panelizer settings
       // are modified and must be made local to the entity.
       if (empty($panelizer->did) || !empty($panelizer->name)) {
@@ -1524,6 +1537,7 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
     if (!empty($form_state['complete'])) {
       $entity->panelizer[$view_mode]->display = $form_state['display'];
       $entity->panelizer[$view_mode]->display_is_modified = TRUE;
+      $entity->panelizer[$view_mode]->entity_custom_panelizer = TRUE;
       $this->entity_save($entity);
       drupal_set_message(t('The layout has been changed.'));
       drupal_goto($path . '/content');
@@ -1554,6 +1568,7 @@ abstract class PanelizerEntityDefault implements PanelizerEntityInterface {
         drupal_set_message(t('The settings have been updated.'));
         $entity->panelizer[$view_mode]->display = $form_state['display'];
         $entity->panelizer[$view_mode]->display_is_modified = TRUE;
+        $entity->panelizer[$view_mode]->entity_custom_panelizer = TRUE;
         $this->entity_save($entity);
       }
       else {
