diff --git a/views/relation_handler_relationship.inc b/views/relation_handler_relationship.inc
index 2c738a1..d5fe12f 100644
--- a/views/relation_handler_relationship.inc
+++ b/views/relation_handler_relationship.inc
@@ -135,6 +135,21 @@ class relation_handler_relationship extends views_handler_relationship {
         'value' => $this->definition['entity_type_right'],
       );
     }
+    for ($table = $this->query->table_queue[$this->table_alias]; isset($table['join']); $table = $this->query->table_queue[$table['join']->left_table]) {
+      if ( isset($table['join']->extra) &&
+          !empty($table['join']->extra[0]['field']) &&
+          !empty($table['join']->extra[0]['value']) &&
+          $table['join']->extra[0]['field'] == 'bundle' &&
+          $table['join']->extra[0]['value'] == $this->definition['relation_type']) {
+        $join->definition['extra'][] = array(
+          //  This definition is a bit funny but there's no other way to tell
+          // Views to use this as it is.
+          'table' => NULL,
+          'field' => $table['alias'] . ".$entity_id_field_name <> $r.$entity_id_field_name AND 1 ",
+          'value' => 1,
+        );
+      }
+    }
 
     $join->construct();
     $join->adjusted = TRUE;
