diff --git a/entityreference_backreference.module b/entityreference_backreference.module
index de67e6d..fa65570 100644
--- a/entityreference_backreference.module
+++ b/entityreference_backreference.module
@@ -11,25 +11,38 @@ function entityreference_backreference_entity_property_info_alter(&$info) {
       continue;
     }
     if ($field['type'] == 'entityreference') {
-      $target = $field['settings']['target_type'];
+      $target_type = $field['settings']['target_type'];
     }
     else {
       // For field types like node_reference, taxonomy_term_reference, remove
       // the _reference suffix to get the entity type.
-      $target = str_replace('_reference', '', $field['type']);
+      $target_type = str_replace('_reference', '', $field['type']);
     }
     // If we were able to determine the target entity type.
-    if (isset($entity_info[$target])) {
+    if (isset($entity_info[$target_type])) {
+      // If no target bundles are specified, the field exists for all bundles.
+      $target_bundles = !empty($field['settings']['handler_settings']['target_bundles']) ? $field['settings']['handler_settings']['target_bundles'] : array('all');
+
       $field_name = $field['field_name'];
-      foreach ($field['bundles'] as $entity_type => $bundles) {
-        $type = $field['cardinality'] == 1 ? $entity_type : 'list<' . $entity_type . '>';
-        $info[$target]['properties'][$field_name . '_' . $entity_type . '_eb'] = array(
-          'label' => t('@entity_type entity referenced from @field_name', array('@entity_type' => $entity_type, '@field_name' => $field_name)),
-          'description' => t('A bridge to the @entity_type entity that is referenced via @field_name', array('@entity_type' => $entity_type, '@field_name' => $field_name)),
-          'getter callback' => 'entityreference_backreference_related_entities',
-          'field' => $field,
-          'type' => $type,
-        );
+      foreach ($target_bundles as $target_bundle) {
+        // Get a reference to the properties array (entity or bundle).
+        if ($target_bundle == 'all') {
+          $target = &$info[$target_type];
+        }
+        else {
+          $target = &$info[$target_type]['bundles'][$target_bundle];
+        }
+
+        foreach (array_keys($field['bundles']) as $entity_type) {
+          $type = $field['cardinality'] == 1 ? $entity_type : 'list<' . $entity_type . '>';
+          $target['properties'][$field_name . '_' . $entity_type . '_eb'] = array(
+            'label' => t('@entity_type entity referenced from @field_name', array('@entity_type' => $entity_type, '@field_name' => $field_name)),
+            'description' => t('A bridge to the @entity_type entity that is referenced via @field_name', array('@entity_type' => $entity_type, '@field_name' => $field_name)),
+            'getter callback' => 'entityreference_backreference_related_entities',
+            'field' => $field,
+            'type' => $type,
+          );
+        }
       }
     }
   }
