Index: modules/field_ui/field_ui.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/field_ui/field_ui.test,v
retrieving revision 1.3
diff -u -r1.3 field_ui.test
--- modules/field_ui/field_ui.test	8 Nov 2009 09:24:55 -0000	1.3
+++ modules/field_ui/field_ui.test	8 Nov 2009 15:58:09 -0000
@@ -102,6 +102,12 @@
     // Assert redirection back the to "manage fields" page.
     $this->assertText(t('Saved @label configuration.', array('@label' => $this->field_label)), t('Redirected to "Manage fields" page.'));
     $this->assertText($this->field_name, t('Field was created and appears in overview page.'));
+
+    // Assert the field appears in the "add existing field" section for
+    // different entity types; .g. if a field was added in a node entity, it
+    // should also appear in the 'taxonomy term' entity.
+//    $this->drupalGet('admin/structure/taxonomy/1/fields');
+//    $this->assertFieldByXPath('//select[@id="edit--add-existing-field-field-name"]//option[@value="' . $this->field_name . '"]', t('Existing field was found in account settings.'));
   }
 
   /**
Index: modules/field_ui/field_ui.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field_ui/field_ui.admin.inc,v
retrieving revision 1.28
diff -u -r1.28 field_ui.admin.inc
--- modules/field_ui/field_ui.admin.inc	8 Nov 2009 09:24:55 -0000	1.28
+++ modules/field_ui/field_ui.admin.inc	8 Nov 2009 15:58:09 -0000
@@ -778,18 +778,20 @@
 function field_ui_existing_field_options($obj_type, $bundle) {
   $options = array();
   $field_types = field_info_field_types();
-  foreach (field_info_instances($obj_type) as $bundle_name => $instances) {
-    // No need to look in the current bundle.
-    if ($bundle_name != $bundle) {
-      foreach ($instances as $instance) {
-        $field = field_info_field($instance['field_name']);
-        // Don't show locked fields or fields already in the current bundle.
-        if (empty($field['locked']) && !field_info_instance($obj_type, $field['field_name'], $bundle)) {
-          $text = t('@type: @field (@label)', array(
-            '@type' => $field_types[$field['type']]['label'],
-            '@label' => t($instance['label']), '@field' => $instance['field_name'],
-          ));
-          $options[$instance['field_name']] = (drupal_strlen($text) > 80 ? truncate_utf8($text, 77) . '...' : $text);
+  foreach (field_info_instances() as $existing_obj_type => $bundles) {
+    foreach ($bundles as $existing_bundle => $instances) {
+      // No need to look in the current bundle.
+      if ($existing_bundle != $bundle && $existing_obj_type != $obj_type) {
+        foreach ($instances as $instance) {
+          $field = field_info_field($instance['field_name']);
+          // Don't show locked fields or fields already in the current bundle.
+          if (empty($field['locked']) && !field_info_instance($obj_type, $field['field_name'], $bundle)) {
+            $text = t('@type: @field (@label)', array(
+              '@type' => $field_types[$field['type']]['label'],
+              '@label' => t($instance['label']), '@field' => $instance['field_name'],
+            ));
+            $options[$instance['field_name']] = (drupal_strlen($text) > 80 ? truncate_utf8($text, 77) . '...' : $text);
+          }
         }
       }
     }
