Index: modules/node/content_types.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/content_types.inc,v
retrieving revision 1.25
diff -u -p -r1.25 content_types.inc
--- modules/node/content_types.inc	10 Feb 2007 13:31:32 -0000	1.25
+++ modules/node/content_types.inc	25 Feb 2007 16:08:55 -0000
@@ -302,6 +302,13 @@ function node_type_form_submit($form_id,
   }
 
   unset($variables['form_token'], $variables['op'], $variables['submit'], $variables['delete'], $variables['reset'], $variables['form_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) {
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.783
diff -u -p -r1.783 node.module
--- modules/node/node.module	15 Feb 2007 11:40:18 -0000	1.783
+++ modules/node/node.module	25 Feb 2007 16:08:56 -0000
@@ -316,6 +316,15 @@ function node_type_delete($type) {
 
   $info = node_get_types('type', $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) {
+    $key .= '_'. $info->type;
+    variable_del($key);
+  }
 }
 
 /**
