? .cache
? .settings
Index: modules/field/field.crud.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.crud.inc,v
retrieving revision 1.49
diff -u -p -r1.49 field.crud.inc
--- modules/field/field.crud.inc	7 Feb 2010 05:12:34 -0000	1.49
+++ modules/field/field.crud.inc	8 Feb 2010 22:32:21 -0000
@@ -319,6 +319,9 @@ function field_create_field($field) {
   // read.
   $data = $field;
   unset($data['columns'], $data['field_name'], $data['type'], $data['active'], $data['module'], $data['storage_type'], $data['storage_active'], $data['storage_module'], $data['locked'], $data['cardinality'], $data['deleted']);
+  // Additionally, do not save the 'bundles' property populated by
+  // field_info_field().
+  unset($data['bundles']);
 
   $record = array(
     'field_name' => $field['field_name'],
@@ -440,6 +443,10 @@ function field_update_field($field) {
   // read.
   $data = $field;
   unset($data['columns'], $data['field_name'], $data['type'], $data['locked'], $data['module'], $data['cardinality'], $data['active'], $data['deleted']);
+  // Additionally, do not save the 'bundles' property populated by
+  // field_info_field().
+  unset($data['bundles']);
+
   $field['data'] = $data;
 
   // Store the field and create the id.
Index: modules/field/field.info.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.info.inc,v
retrieving revision 1.37
diff -u -p -r1.37 field.info.inc
--- modules/field/field.info.inc	13 Jan 2010 04:37:03 -0000	1.37
+++ modules/field/field.info.inc	8 Feb 2010 22:25:33 -0000
@@ -248,6 +248,9 @@ function _field_info_prepare_field($fiel
   drupal_alter('field_storage_details', $details, $field, $instance);
   $field['storage']['details'] = $details;
 
+  // Initialize the 'bundles' list.
+  $field['bundles'] = array();
+
   return $field;
 }
 
Index: modules/field_ui/field_ui.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field_ui/field_ui.admin.inc,v
retrieving revision 1.39
diff -u -p -r1.39 field_ui.admin.inc
--- modules/field_ui/field_ui.admin.inc	2 Feb 2010 21:47:26 -0000	1.39
+++ modules/field_ui/field_ui.admin.inc	8 Feb 2010 22:34:18 -0000
@@ -995,7 +995,8 @@ function field_ui_field_delete_form_subm
   $field_name = $form_values['field_name'];
   $bundle = $form_values['bundle'];
   $obj_type = $form_values['object_type'];
-  $field = field_info_field($form_values['field_name']);
+
+  $field = field_info_field($field_name);
   $instance = field_info_instance($obj_type, $field_name, $bundle);
   $bundles = field_info_bundles();
   $bundle_label = $bundles[$obj_type][$bundle]['label'];
@@ -1003,7 +1004,7 @@ function field_ui_field_delete_form_subm
   if (!empty($bundle) && $field && !$field['locked'] && $form_values['confirm']) {
     field_delete_instance($instance);
     // Delete the field if that was the last instance.
-    if (count($field['bundles'] == 1)) {
+    if (count($field['bundles']) == 1 && count(current($field['bundles'])) == 1) {
       field_delete_field($field['field_name']);
     }
     drupal_set_message(t('The field %field has been deleted from the %type content type.', array('%field' => $instance['label'], '%type' => $bundle_label)));
