diff --git a/relation.module b/relation.module
index d3842f9..a555892 100644
--- a/relation.module
+++ b/relation.module
@@ -989,6 +989,23 @@ function relation_get_type_label($relation, $reverse = FALSE) {
 }
 
 /**
+ * Return the label for a given entity type and bundle.
+ *
+ * @param string $entity_type
+ *   The entity type.
+ *
+ * @param string $entity_bundle
+ *   The entity bundle.
+ *
+ * @return string
+ *   The label of the given entity type and bundle.
+ */
+function _relation_get_bundle_label($entity_type, $entity_bundle) {
+  $entity_info = entity_get_info($entity_type);
+  return $entity_info['bundles'][$entity_bundle]['label'];
+}
+
+/**
  * Controller class for relation.
  *
  * This extends the DrupalDefaultEntityController class, adding required
diff --git a/relation_entity_collector/relation_entity_collector.module b/relation_entity_collector/relation_entity_collector.module
index 9d571f9..4e40e48 100644
--- a/relation_entity_collector/relation_entity_collector.module
+++ b/relation_entity_collector/relation_entity_collector.module
@@ -149,7 +149,8 @@ function relation_entity_collector($form, &$form_state) {
           $valid = TRUE;
         }
         if ($valid) {
-          $options["$entity_type:$entity_id"] = "$entity_bundle: " . entity_label($entity_type, $entity);
+          $bundle_label = _relation_get_bundle_label($entity_type, $entity_bundle);
+          $options["$entity_type:$entity_bundle:$entity_id"] = $bundle_label . ': ' . entity_label($entity_type, $entity);
         }
       }
     }
@@ -293,23 +294,22 @@ function relation_entity_collector_validate($form, &$form_state) {
       if ($errors) {
         return;
       }
-      // Here we get (entity_type, entity_id).
-      $break = explode(':', $entity_key);
+      // Get entity info from key ('{entity_type}:{entity_bundle}:{entity_id}').
+      $entity_info = explode(':', $entity_key);
       // Add the label for later display. #options is check_plain'd but we need
       // to do that ourselves.
       $entity_label = check_plain($form['entity_key']['#options'][$entity_key]);
-      $entity_label_array = explode(':', $entity_label, 2);
       // Indexes are added in ascending order, starting from 0.
       $_SESSION += array('relation_entity_keys' => array());
       $next_index = count($_SESSION['relation_entity_keys']);
       // If validation succeeds we will add this in the submit handler.
       $form_state['pick'] = array(
-        'entity_type' => $break[0],
-        'entity_id' => $break[1],
-        'entity_bundle' => $entity_label_array[0],
-        'r_index' => $next_index,
-        'entity_label' => $entity_label,
-        'entity_key' => $entity_key,
+        'r_index'       => $next_index,
+        'entity_key'    => $entity_key,
+        'entity_label'  => $entity_label,
+        'entity_type'   => $entity_info[0],
+        'entity_bundle' => $entity_info[1],
+        'entity_id'     => $entity_info[2],
       );
       $endpoints = $_SESSION['relation_entity_keys'];
       $endpoints[] = $form_state['pick'];
diff --git a/relation_entity_collector/tests/relation_entity_collector.test b/relation_entity_collector/tests/relation_entity_collector.test
index 9aa8527..4968d12 100644
--- a/relation_entity_collector/tests/relation_entity_collector.test
+++ b/relation_entity_collector/tests/relation_entity_collector.test
@@ -27,8 +27,8 @@ class RelationEntityCollectorTestCase extends RelationTestCase {
    * Add relations to Node 1 and to Node 3 and then check that they are related.
    */
   function testEntityCollector() {
-    $node1key = 'node:' . $this->node1->nid;
-    $node3key = 'node:' . $this->node3->nid;
+    $node1key = 'node:article:' . $this->node1->nid;
+    $node3key = 'node:page:' . $this->node3->nid;
 
     $relation_type = $this->relation_types['symmetric']['relation_type'];
     $edit = array(
@@ -48,13 +48,13 @@ class RelationEntityCollectorTestCase extends RelationTestCase {
       ->execute());
     $path = 'relation/' . $result[0];
     $link = l($relation_type, $path);
-    // Rebuild the message. Use the known node labels to make sure the message
-    // contains those.
-    $node1_label = entity_label('node', $this->node1);
-    $node3_label = entity_label('node', $this->node3);
+    // Rebuild the message using the known bundle and entity labels to make sure
+    // the message contains those.
+    $node1_label = _relation_get_bundle_label('node', 'article') . ': ' . entity_label('node', $this->node1);
+    $node3_label = _relation_get_bundle_label('node', 'page') . ': ' . entity_label('node', $this->node3);
     $items = array(
-      "article: " . $node1_label,
-      "page: " . $node3_label,
+      $node1_label,
+      $node3_label,
     );
     $item_list = array(
       '#theme' => 'item_list',
@@ -66,7 +66,7 @@ class RelationEntityCollectorTestCase extends RelationTestCase {
     $this->drupalGet($path);
     $node1_uri = entity_uri('node', $this->node1);
     $node3_uri = entity_uri('node', $this->node3);
-    $this->assertRaw(l($node1_label, $node1_uri['path'], $node1_uri['options']), 'Node1 link found');
-    $this->assertRaw(l($node3_label, $node3_uri['path'], $node3_uri['options']), 'Node1 link found');
+    $this->assertRaw(l(entity_label('node', $this->node1), $node1_uri['path'], $node1_uri['options']), 'Node1 link found');
+    $this->assertRaw(l(entity_label('node', $this->node3), $node3_uri['path'], $node3_uri['options']), 'Node1 link found');
   }
 }
