diff --git a/modules/node/content_types.inc b/modules/node/content_types.inc
index d58bc31..674b9bf 100644
--- a/modules/node/content_types.inc
+++ b/modules/node/content_types.inc
@@ -325,6 +325,13 @@ function node_type_form_submit($form, &$form_state) {
 
   unset($variables['form_token'], $variables['op'], $variables['submit'], $variables['delete'], $variables['reset'], $variables['form_id'], $variables['form_build_id']);
 
+  // Save the remaining keys for use when deleting a node type
+  $keys = array_keys($variables);
+  $node_type_variables = variable_get('node_type_variables' , array());
+  // Merge the current and previous keys in case modules have been disabled.
+  $node_type_variables = array_unique(array_merge($node_type_variables, $keys));
+  variable_set('node_type_variables', $node_type_variables);
+
   // Save or reset persistent variable values.
   foreach ($variables as $key => $value) {
     $variable_new = $key . '_' . $type->type;
diff --git a/modules/node/node.module b/modules/node/node.module
index 6abfcb2..3d3e697 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -622,6 +622,13 @@ function node_type_delete($type) {
   field_attach_delete_bundle('node', $type);
   module_invoke_all('node_type_delete', $info);
 
+  // Delete persistent variable values that were set by adding elements to the
+  // node type form.
+  $variables = variable_get('node_type_variables', array());
+  foreach ($variables as $key) {
+    variable_del($key . '_' . $info->type);
+  }
+
   // Clear the node type cache.
   node_type_cache_reset();
 }
