? .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)));