diff --git a/relation.module b/relation.module
index a6df847..fcc7e90 100644
--- a/relation.module
+++ b/relation.module
@@ -832,7 +832,24 @@ function relation_get_available_types($entity_type, $bundle, $endpoint = 'source
 function relation_entity_delete($entity, $entity_type) {
   list($id) = entity_extract_ids($entity_type, $entity);
   $relations = relation_query($entity_type, $id)->execute();
+
+  $delete = array();
+  foreach ($relations as $rid => $relation) {
+    $relation = relation_load($relation->rid, $relation->vid);
+    foreach ($relation->endpoints[LANGUAGE_NONE] as $entity_info) {
+      if ($entity_info['entity_type'] != $entity_type || $entity_info['entity_id'] != $id) {
+        $delete[] = $entity_info;
+      }
+    }
+  }
+
   relation_multiple_delete(array_keys($relations));
+
+  // @TODO Add rules integration.
+  foreach ($delete as $entity_info) {
+    entity_delete($entity_info['entity_type'], $entity_info['entity_id']);
+  }
+
   if ($relations) {
     drupal_set_message(t('Relations !relations have been deleted.', array('!relations' => implode(', ', array_keys($relations)))));
   }
