 core/modules/edit/edit.module                             |    8 ++++++++
 .../edit/lib/Drupal/edit/Tests/EditLoadingTest.php        |   13 +++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/core/modules/edit/edit.module b/core/modules/edit/edit.module
index 9e4d132..059271c 100644
--- a/core/modules/edit/edit.module
+++ b/core/modules/edit/edit.module
@@ -178,6 +178,14 @@ function edit_preprocess_field(&$variables) {
   $element = $variables['element'];
   $entity = $element['#object'];
 
+  // Edit module only supports view modes, not dynamically defined "display
+  // options" (which field_view_field() always names the "_custom" view mode).
+  // @see field_view_field()
+  // @see https://drupal.org/node/2120335
+  if ($element['#view_mode'] === '_custom') {
+    return;
+  }
+
   // Fields that are not part of the entity (i.e. dynamically injected "pseudo
   // fields") and computed fields are not editable.
   $definition = $entity->getPropertyDefinition($element['#field_name']);
diff --git a/core/modules/edit/lib/Drupal/edit/Tests/EditLoadingTest.php b/core/modules/edit/lib/Drupal/edit/Tests/EditLoadingTest.php
index 4c815e1..651a3cf 100644
--- a/core/modules/edit/lib/Drupal/edit/Tests/EditLoadingTest.php
+++ b/core/modules/edit/lib/Drupal/edit/Tests/EditLoadingTest.php
@@ -303,6 +303,19 @@ public function testPseudoFields() {
   }
 
   /**
+   * Tests that Edit doesn't make fields rendered with display options editable.
+   */
+  public function testDisplayOptions() {
+    $node = entity_load('node', '1');
+    $display_settings = array(
+      'label' => 'inline',
+    );
+    $build = field_view_field($node, 'body', $display_settings);
+    $output = drupal_render($build);
+    $this->assertFalse(strpos($output, 'data-edit-field-id'), 'data-edit-field-id attribute not added when rendering field using dynamic display options.');
+  }
+
+  /**
    * Tests that Edit works with custom render pipelines.
    */
   public function testCustomPipeline() {
