diff --git a/relation_endpoint.module b/relation_endpoint.module
index f583280..3771404 100644
--- a/relation_endpoint.module
+++ b/relation_endpoint.module
@@ -25,6 +25,10 @@ function relation_endpoint_field_info() {
  * Implements hook_field_validate().
  */
 function relation_endpoint_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
+  if (empty($entity_type) && empty($entity)) {
+    return;
+  }
+
   $relation_type = relation_type_load($entity->relation_type);
   // Check that relation_type exists.
   if (!$relation_type) {
diff --git a/tests/relation_ui.test b/tests/relation_ui.test
index f3d7f42..6b9e79b 100644
--- a/tests/relation_ui.test
+++ b/tests/relation_ui.test
@@ -171,4 +171,25 @@ class RelationUITestCase extends RelationTestCase {
     // Delete unused relation.
     relation_type_delete('is_similar_to');
   }
+
+  /**
+   * Tests endpoint field settings.
+   */
+  function testRelationEndpointsField() {
+    $edit = array(
+      'instance[label]' => 'endpoints new label',
+    );
+    $this->drupalPost('admin/structure/relation/manage/symmetric/fields/endpoints', $edit, t('Save settings'));
+    $this->assertText(filter_xss(t('Saved %label configuration.', array('%label' => 'endpoints new label')), array()));
+
+    $randomName = $this->randomName(25);
+    $edit = array(
+      'instance[label]' => $randomName,
+    );
+    $this->drupalPost('admin/structure/relation/manage/symmetric/fields/endpoints', $edit, t('Save settings'));
+    $this->assertText(filter_xss(t('Saved %label configuration.', array('%label' => $randomName)), array()));
+
+    $this->drupalGet('admin/structure/relation/manage/symmetric/fields');
+    $this->assertText($randomName);
+  }
 }
