diff --git a/modules/fields/atom_reference/atom_reference.module b/modules/fields/atom_reference/atom_reference.module
index c3b9601..44c395e 100644
--- a/modules/fields/atom_reference/atom_reference.module
+++ b/modules/fields/atom_reference/atom_reference.module
@@ -79,32 +79,80 @@ function atom_reference_field_instance_settings_form($field, $instance) {
  */
 function atom_reference_field_views_data($field) {
   $data = field_views_field_default_views_data($field);
-  $current_table = _field_sql_storage_tablename($field);
-  $revision_table = _field_sql_storage_revision_tablename($field);
-  $column = _field_sql_storage_columnname($field['field_name'], 'sid');
-
-  // Relationship: add a relationship for related atom.
-  $data[$current_table][$column]['relationship'] = array(
-    'base' => 'scald_atoms',
-    'field' => $column,
-    'handler' => 'views_handler_relationship',
-    'label' => $data[$current_table][$field['field_name']]['title'],
-    'field_name' => $field['field_name'],
-  );
+  $entity_info = entity_get_info('scald_atom');
+  foreach ($data as $table_name => $table_data) {
+    if (isset($entity_info['base table'])) {
+      $entity = $entity_info['label'];
+      if ($entity == t('Node')) {
+        $entity = t('Content');
+      }
 
-  // Relationship: add a relationship for revisions.
-  $data[$revision_table][$column]['relationship'] = array(
-    'base' => 'scald_atoms',
-    'field' => $column,
-    'handler' => 'views_handler_relationship',
-    'label' => t('Atom reference item revision from !field_name', array('!field_name' => $field['field_name'])),
-    'field_name' => $field['field_name'],
-  );
+      $field_name = $field['field_name'] . '_sid';
+      $parameters = array('@entity' => $entity, '!field_name' => $field['field_name']);
+      $data[$table_name][$field_name]['relationship'] = array(
+        'handler' => 'views_handler_relationship',
+        'base' => $entity_info['base table'],
+        'base field' => $entity_info['entity keys']['id'],
+        'label' => t('@entity referenced from !field_name', $parameters),
+        'group' => t('Atom Reference'),
+        'title' => t('Referenced Atom'),
+        'help' => t('A bridge to the @entity that is referenced via !field_name', $parameters),
+      );
+    }
+  }
 
   return $data;
 }
 
 /**
+ * Implements hook_field_views_data_views_data_alter().
+ *
+ * Views integration to provide reverse relationships on entityreference fields.
+ */
+function atom_reference_field_views_data_views_data_alter(&$data, $field) {
+  foreach ($field['bundles'] as $entity_type => $bundles) {
+    $target_entity_info = entity_get_info('scald_atom');
+    if (isset($target_entity_info['base table'])) {
+      $entity_info = entity_get_info($entity_type);
+      $entity = $entity_info['label'];
+      if ($entity == t('Node')) {
+        $entity = t('Content');
+      }
+      $target_entity = $target_entity_info['label'];
+      if ($target_entity == t('Node')) {
+        $target_entity = t('Content');
+      }
+
+      $pseudo_field_name = 'reverse_' . $field['field_name'] . '_' . $entity_type;
+      $replacements = array('@entity' => $entity, '@target_entity' => $target_entity, '!field_name' => $field['field_name']);
+      $data[$target_entity_info['base table']][$pseudo_field_name]['relationship'] = array(
+        'handler' => 'views_handler_relationship_entity_reverse',
+        'field_name' => $field['field_name'],
+        'field table' => _field_sql_storage_tablename($field),
+        'field field' => $field['field_name'] . '_sid',
+        'base' => $entity_info['base table'],
+        'base field' => $entity_info['entity keys']['id'],
+        'label' => t('@entity referencing @target_entity from !field_name', $replacements),
+        'group' => t('Atom Reference'),
+        'title' => t('Referencing atom'),
+        'help' => t('A bridge to the @entity that is referencing @target_entity via !field_name', $replacements),
+        'join_extra' => array(
+          0 => array(
+            'field' => 'entity_type',
+            'value' => $entity_type,
+          ),
+          1 => array(
+            'field' => 'deleted',
+            'value' => 0,
+            'numeric' => TRUE,
+          ),
+        ),
+      );
+    }
+  }
+}
+
+/**
  * Implements hook_field_validate().
  */
 function atom_reference_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
