diff --git a/views/relation.views.inc b/views/relation.views.inc
index f8ad4b3..20fa5e4 100644
--- a/views/relation.views.inc
+++ b/views/relation.views.inc
@@ -180,6 +180,20 @@ function relation_views_data_alter(&$data) {
   $entity_type_field_name = _field_sql_storage_columnname('endpoints', 'entity_type');
   // Build the relations between the different tables.
   $types = relation_get_types();
+  // check relation type
+  foreach ($types as $name => $relation_type) {
+    $target_index = $relation_type->directional ? 'target_bundles' : 'source_bundles';
+    $source_bundles = $relation_type->{$target_index};
+    foreach ($source_bundles as $key => $source_bundle) {
+      $source_bundle_arr = explode(':', $source_bundle);
+      $source_entity_type = $source_bundle_arr[0];
+      $source_bundle = $source_bundle_arr[1];
+      $source_entity_info = entity_get_info($source_entity_type);
+      if (empty($entity_info) || empty($source_entity_info['bundles'][$source_bundle])) {
+        unset($types[$name]);
+      }
+    }
+  }
   foreach ($types as $type => $relation_type) {
     $target_index = $relation_type->directional ? 'target_bundles' : 'source_bundles';
     foreach ($relation_type->source_bundles as $source_bundle) {
