diff --git a/relation_select.module b/relation_select.module
index 29cb60f..7ffb307 100644
--- a/relation_select.module
+++ b/relation_select.module
@@ -466,7 +466,7 @@ function relation_select_field_load($entity_type, $entities, $field, $instances,
 function relation_select_field_prepare_view($entity_type, $entities, &$field, &$instances, $langcode, &$items, $displays) {
   foreach ($entities as $entity_id => $entity) {
     $relation_type = $instances[$entity_id]['settings']['relation_type'];
-    $query = relation_query($entity_type, $entity_id);
+    $query = relation_query($entity_type, $entity_id, 0);
     $query->propertyCondition('relation_type', $relation_type);
     $relation_ids = array_keys($query->execute());
     // Who knows why but field does not like it if the delta does not start at 0...
@@ -814,8 +814,15 @@ function relation_select_build_entity_keys($entity_type, $entity_id, $endpoints)
  * @param array $relation_types
  */
 function relation_select_entity_get_relations($entity_type, $entity_id, $relation_type) {
-  // Get the relation entities for this entity's relation type
-  $relation_query = relation_query($entity_type, $entity_id);
+  $r_index = NULL;
+  // If this is a directional relation, only return the relation instances where
+  // the requested entity is the parent.
+  if (relation_type_load($relation_type)->directional) {
+    $r_index = 0;
+  }
+
+  // Get the relation entities for this entity's relation type.
+  $relation_query = relation_query($entity_type, $entity_id, $r_index);
   $relation_query->propertyCondition('relation_type', $relation_type);
   $relation_ids = array_keys($relation_query->execute());
   // Return empty array if we have no relations.
@@ -832,6 +839,9 @@ function relation_select_entity_get_relations($entity_type, $entity_id, $relatio
     'revision_id'
   ));
   $query->condition('fde.entity_id', $relation_ids, 'IN');
+  if ($r_index === 0) {
+    $query->condition('fde.endpoints_r_index', $r_index, '<>');
+  }
   $query->where('!(fde.endpoints_entity_type = :entity_type AND fde.endpoints_entity_id = :entity_id)', array(
     ':entity_type' => $entity_type,
     ':entity_id' => $entity_id
