Index: modules/field_ui/field_ui.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/field_ui/field_ui.module,v
retrieving revision 1.26
diff -u -p -r1.26 field_ui.module
--- modules/field_ui/field_ui.module	22 Feb 2010 16:29:34 -0000	1.26
+++ modules/field_ui/field_ui.module	15 Mar 2010 00:34:01 -0000
@@ -86,33 +86,45 @@ function field_ui_menu() {
             'file' => 'field_ui.admin.inc',
           ) + $access;
           $items["$path/fields/%field_ui_menu"] = array(
+            'load arguments' => array($entity_type, $bundle_name),
+            'title callback' => 'field_ui_menu_title',
+            'title arguments' => array($bundle_arg + 2, $entity_type, $bundle_name),
             'page callback' => 'drupal_get_form',
             'page arguments' => array('field_ui_field_edit_form', $entity_type, $bundle_arg, $field_position),
             'type' => MENU_LOCAL_TASK,
             'file' => 'field_ui.admin.inc',
           ) + $access;
           $items["$path/fields/%field_ui_menu/edit"] = array(
+            'load arguments' => array($entity_type, $bundle_name),
+            'title' => 'Edit',
             'page callback' => 'drupal_get_form',
             'page arguments' => array('field_ui_field_edit_form', $entity_type, $bundle_arg, $field_position),
             'type' => MENU_DEFAULT_LOCAL_TASK,
             'file' => 'field_ui.admin.inc',
           ) + $access;
           $items["$path/fields/%field_ui_menu/field-settings"] = array(
+            'load arguments' => array($entity_type, $bundle_name),
+            'title' => 'Field settings',
             'page callback' => 'drupal_get_form',
             'page arguments' => array('field_ui_field_settings_form', $entity_type, $bundle_arg, $field_position),
             'type' => MENU_LOCAL_TASK,
             'file' => 'field_ui.admin.inc',
           ) + $access;
           $items["$path/fields/%field_ui_menu/widget-type"] = array(
+            'load arguments' => array($entity_type, $bundle_name),
+            'title' => 'Widget settings',
             'page callback' => 'drupal_get_form',
             'page arguments' => array('field_ui_widget_type_form', $entity_type, $bundle_arg, $field_position),
             'type' => MENU_LOCAL_TASK,
             'file' => 'field_ui.admin.inc',
           ) + $access;
           $items["$path/fields/%field_ui_menu/delete"] = array(
+            'load arguments' => array($entity_type, $bundle_name),
+            'title' => 'Delete',
             'page callback' => 'drupal_get_form',
             'page arguments' => array('field_ui_field_delete_form', $entity_type, $bundle_arg, $field_position),
             'type' => MENU_LOCAL_TASK,
+            'weight' => 10,
             'file' => 'field_ui.admin.inc',
           ) + $access;
 
@@ -145,14 +157,27 @@ function field_ui_menu() {
 /**
  * Menu loader; Load a field based on its name.
  */
-function field_ui_menu_load($field_name) {
+function field_ui_menu_load($field_name, $entity_type, $bundle_name) {
+  // Check whether the field exists at all.
   if ($field = field_info_field($field_name)) {
-    return $field;
+    // Only return the field if a field instance exists for the given entity
+    // type and bundle.
+    if ($instance = field_info_instance($entity_type, $field_name, $bundle_name)) {
+      return $field;
+    }
   }
   return FALSE;
 }
 
 /**
+ * Menu title callback.
+ */
+function field_ui_menu_title($field, $entity_type, $bundle_name) {
+  $instance = field_info_instance($entity_type, $field['field_name'], $bundle_name);
+  return $instance['label'];
+}
+
+/**
  * Implements hook_theme().
  */
 function field_ui_theme() {
