diff -x CVS -rup ../cck/includes/panels/content_types/content_field.inc cck/includes/panels/content_types/content_field.inc
--- ../cck/includes/panels/content_types/content_field.inc	2009-06-02 17:05:27.000000000 +0200
+++ cck/includes/panels/content_types/content_field.inc	2009-06-29 15:37:49.000000000 +0200
@@ -20,6 +20,7 @@ function content_content_field_ctools_co
  * Return all field content types available.
  */
 function content_content_field_content_type_content_types() {
+  module_load_include('inc', 'content', 'includes/content.crud');
   // This will hold all the individual field content types.
   $types = array();
 
@@ -29,12 +30,17 @@ function content_content_field_content_t
   $node_types = node_get_types();
 
   foreach ($fields as $field) {
-    // Name the content type a combination of field and node type names.
-    $content_type_name = $field['type_name'] . ':' . $field['field_name'];
+    $instances = content_field_instance_read(array('field_name' => $field['field_name']));
+    // Listing of node types that uses this field.
+    $instance_types = array();
+    foreach ($instances as $instance) {
+      $instance_types[] = $instance['type_name'];
+    }
 
     // Assemble the information about the content type.
     $info = array();
-    $info['title'] = t('@type: (@field_type) @field', array('@type' => $node_types[$field['type_name']]->name, '@field' => $field['field_name'], '@field_type' => $field_types[$field['type']]['label']));
+    $type_name = sizeof($instance_types) > 1 ? t('Multiple node types') : $node_types[$field['type_name']]->name;
+    $info['title'] = t('@type: (@field_type) @field', array('@type' => $type_name, '@field' => $field['field_name'], '@field_type' => $field_types[$field['type']]['label']));
 
     if (isset($field_types[$field['type']]['content_icon'])) {
       $info['icon'] = $field_types[$field['type']]['content_icon'];
@@ -42,9 +48,9 @@ function content_content_field_content_t
 
     $info['category'] = 'Content';
     $info['description'] = t('Field on the referenced node.');
-    $info['required context'] = new ctools_context_required(t('Node'), 'node', array('type' => array($field['type_name'])));
+    $info['required context'] = new ctools_context_required(t('Node'), 'node', array('type' => $instance_types));
 
-    $types[$content_type_name] = $info;
+    $types[$field['field_name']] = $info;
   }
 
   return $types;
@@ -59,14 +65,11 @@ function content_content_field_content_t
   }
   $node = isset($context->data) ? drupal_clone($context->data) : NULL;
 
-  // Extract the node type and field name from the subtype
-  list($node_type, $field_name) = explode(':', $subtype, 2);
-
   // Get the formatter that was selected in the settings dialog.
   $formatter = $conf['formatter'];
 
   // Get more information about our field.
-  $field = content_fields($field_name);
+  $field = content_fields($subtype);
 
   // Force panel settings into the field's display settings.
   $field['display_settings']['label']['format'] = $conf['label'] == 'normal' ? 'hidden' : $conf['label'];
@@ -77,7 +80,7 @@ function content_content_field_content_t
   $output = content_view_field($field, $node);
 
   $block->module = 'content';
-  $block->delta = $field_name;
+  $block->delta = $subtype;
   if ($conf['label'] == 'normal') {
     $block->title = $field['widget']['label'];
   }
@@ -105,8 +108,7 @@ function content_content_field_content_t
     '#description' => t('Configure how the label is going to be displayed.'),
   );
 
-  // Extract the node type and field name from the subtype
-  list($node_type, $field_name) = explode(':', $form_state['subtype_name'], 2);
+  $field_name = $form_state['subtype_name'];
 
   // Get all the information about our field.
   $field = content_fields($field_name);
