Index: views/entity.views.inc
===================================================================
--- views/entity.views.inc	(revision 10)
+++ views/entity.views.inc	(working copy)
@@ -36,11 +36,12 @@ function entity_views_data() {
  */
 class EntityDefaultViewsController {
 
-  protected $type, $info;
+  protected $type, $info, $relationships;
 
   public function __construct($type) {
     $this->type = $type;
     $this->info = entity_get_info($type);
+    $this->relationships = array();
   }
 
   /**
@@ -61,6 +62,9 @@ class EntityDefaultViewsController {
         'help' => '',
       );
       $data[$table] += $this->schema_fields();
+
+      // Add reverse relationship data, if any.
+      $data += $this->relationships;
     }
     return $data;
   }
@@ -98,6 +102,19 @@ class EntityDefaultViewsController {
 
     // Add in relationships to related entities.
     if (($info = entity_get_info($type)) && !empty($info['base table'])) {
+      // Prepare reversed relationship data.
+      $this->relationships[$info['base table']][$this->type . '_' . $name] = array(
+        'title' => $property_info['label'],
+        'help' => $property_info['description'],
+        'relationship' => array(
+          'label' => drupal_ucfirst($this->info['label']),
+          'handler' => 'views_handler_relationship',
+          'base' => $this->info['base table'],
+          'base field' => isset($this->info['entity keys']['name']) ? $this->info['entity keys']['name'] : $this->info['entity keys']['id'],
+          'relationship field' => $name,
+        ),
+      );
+
       return array(
         'relationship' => array(
           'label' => drupal_ucfirst($info['label']),
