diff --git a/includes/common.inc b/includes/common.inc
index 932357e..fcecef2 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -352,11 +352,21 @@ function panels_common_settings_submit($form, &$form_state) {
   $module_name = $form_state['values']['module_name'];
   variable_set($module_name . '_default', $form_state['values']['panels_common_default']);
   if (!$form_state['skip']) {
-    // merge the broken apart array neatly back together
-    $allowed = $form_state['values']['allowed'];
+    // Merge the broken apart array neatly back together.
     $allowed_content_types = array();
     foreach ($form_state['values']['allowed'] as $allowed) {
-      $allowed_content_types = array_merge($allowed_content_types, $form_state['values']['content_types'][$allowed]['options']);
+      $values = $form_state['values']['content_types'][$allowed]['options'];
+      // If new content of the type is not added, storing a lisy of disabled
+      // content is not needed.
+      if (!$form_state['values']['panels_common_default'][$allowed]) {
+        $values = array_filter($values);
+      }
+      $allowed_content_types = array_merge($allowed_content_types, $values);
+    }
+    // Values from checkboxes are the same string as they key, but we only need
+    // to store the boolean value.
+    foreach ($allowed_content_types as &$value) {
+      $value = (bool) $value;
     }
     variable_set($module_name . '_allowed_types', $allowed_content_types);
   }
