diff --git a/core/modules/block/custom_block/lib/Drupal/custom_block/Tests/CustomBlockFieldTest.php b/core/modules/block/custom_block/lib/Drupal/custom_block/Tests/CustomBlockFieldTest.php
index 53f8f5a..d637b3f 100644
--- a/core/modules/block/custom_block/lib/Drupal/custom_block/Tests/CustomBlockFieldTest.php
+++ b/core/modules/block/custom_block/lib/Drupal/custom_block/Tests/CustomBlockFieldTest.php
@@ -96,8 +96,8 @@ public function testBlockFields() {
     $this->drupalGet('block/add/link');
     $edit = array(
       'info' => $this->randomName(8),
-      $this->field['field_name'] . '[und][0][url]' => 'http://example.com',
-      $this->field['field_name'] . '[und][0][title]' => 'Example.com'
+      $this->field['field_name'] . '[0][url]' => 'http://example.com',
+      $this->field['field_name'] . '[0][title]' => 'Example.com'
     );
     $this->drupalPost(NULL, $edit, t('Save'));
     $block = entity_load('custom_block', 1);
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentFieldsTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentFieldsTest.php
index f9d25f1..62e7f67 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentFieldsTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentFieldsTest.php
@@ -111,7 +111,7 @@ function testCommentFormat() {
 
     // Post a comment without an explicit subject.
     $this->drupalLogin($this->web_user);
-    $edit = array('comment_body[und][0][value]' => $this->randomName(8));
+    $edit = array('comment_body[0][value]' => $this->randomName(8));
     $this->drupalPost('node/' . $this->node->id(), $edit, t('Save'));
   }
 }
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentLanguageTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentLanguageTest.php
index 4064b22..ca6c4fd 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentLanguageTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentLanguageTest.php
@@ -109,7 +109,7 @@ function testCommentLanguage() {
         $comment_values[$node_langcode][$langcode] = $this->randomName();
         $edit = array(
           'subject' => $this->randomName(),
-          "comment_body[$langcode][0][value]" => $comment_values[$node_langcode][$langcode],
+          'comment_body[0][value]' => $comment_values[$node_langcode][$langcode],
         );
         $this->drupalPost($prefix . 'node/' . $node->id(), $edit, t('Preview'));
         $this->drupalPost(NULL, $edit, t('Save'));
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
index b524dfa..62a7e16 100644
--- a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
+++ b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
@@ -253,14 +253,14 @@ function testSiteWideContact() {
     $edit = array(
       'subject' => $this->randomName(),
       'message' => $this->randomName(),
-      $field_name . '[und][0][value]' => $this->randomName(),
+      $field_name . '[0][value]' => $this->randomName(),
     );
     $this->drupalPost(NULL, $edit, t('Send message'));
     $mails = $this->drupalGetMails();
     $mail = array_pop($mails);
     $this->assertEqual($mail['subject'], t('[@label] @subject', array('@label' => $label, '@subject' => $edit['subject'])));
     $this->assertTrue(strpos($mail['body'], $field_label));
-    $this->assertTrue(strpos($mail['body'], $edit[$field_name . '[und][0][value]']));
+    $this->assertTrue(strpos($mail['body'], $edit[$field_name . '[0][value]']));
   }
 
   /**
diff --git a/core/modules/edit/lib/Drupal/edit/Tests/EditLoadingTest.php b/core/modules/edit/lib/Drupal/edit/Tests/EditLoadingTest.php
index d3e474c..24ef753 100644
--- a/core/modules/edit/lib/Drupal/edit/Tests/EditLoadingTest.php
+++ b/core/modules/edit/lib/Drupal/edit/Tests/EditLoadingTest.php
@@ -105,9 +105,9 @@ function testUserWithoutPermission() {
     $edit['form_id'] = 'edit_field_form';
     $edit['form_token'] = 'xIOzMjuc-PULKsRn_KxFn7xzNk5Bx7XKXLfQfw1qOnA';
     $edit['form_build_id'] = 'form-kVmovBpyX-SJfTT5kY0pjTV35TV-znor--a64dEnMR8';
-    $edit['body[und][0][summary]'] = '';
-    $edit['body[und][0][value]'] = '<p>Malicious content.</p>';
-    $edit['body[und][0][format]'] = 'filtered_html';
+    $edit['body[0][summary]'] = '';
+    $edit['body[0][value]'] = '<p>Malicious content.</p>';
+    $edit['body[0][format]'] = 'filtered_html';
     $edit['op'] = t('Save');
     $response = $this->submitFieldForm('node/1/body/und/full', $edit);
     // @todo Uncomment the below once https://drupal.org/node/2063303 is fixed.
@@ -188,9 +188,9 @@ function testUserWithPermission() {
       $edit['form_id'] = 'edit_field_form';
       $edit['form_token'] = $token_match[1];
       $edit['form_build_id'] = $build_id_match[1];
-      $edit['body[und][0][summary]'] = '';
-      $edit['body[und][0][value]'] = '<p>Fine thanks.</p>';
-      $edit['body[und][0][format]'] = 'filtered_html';
+      $edit['body[0][summary]'] = '';
+      $edit['body[0][value]'] = '<p>Fine thanks.</p>';
+      $edit['body[0][format]'] = 'filtered_html';
       $edit['op'] = t('Save');
 
       // Submit field form and check response. This should store the
diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceAutoCreateTest.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceAutoCreateTest.php
index d81dc5e..1d6c0a2 100644
--- a/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceAutoCreateTest.php
+++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Tests/EntityReferenceAutoCreateTest.php
@@ -96,7 +96,7 @@ public function testAutoCreate() {
 
     $edit = array(
       'title' => $this->randomName(),
-      'test_field[und][0][target_id]' => $new_title,
+      'test_field[0][target_id]' => $new_title,
     );
     $this->drupalPost("node/add/$this->referencing_type", $edit, 'Save');
 
diff --git a/core/modules/field/field.deprecated.inc b/core/modules/field/field.deprecated.inc
index 25677ac..f759e6d 100644
--- a/core/modules/field/field.deprecated.inc
+++ b/core/modules/field/field.deprecated.inc
@@ -491,46 +491,41 @@ function field_read_instances($conditions = array(), $include_additional = array
  *     '#tree' => TRUE,
  *     '#field_name' => The name of the field,
  *     '#language' => $langcode,
- *     $langcode => array(
+ *     '#field_parents' => The 'parents' space for the field in the form, equal
+ *       to the #parents property of the $form parameter received by
+ *       field_attach_form(),
+ *     '#required' => Whether or not the field is required,
+ *     '#title' => The label of the field instance,
+ *     '#description' => The description text for the field instance,
+ *
+ *     // Only for 'single' widgets:
+ *     '#theme' => 'field_multiple_value_form',
+ *     '#cardinality' => The field cardinality,
+ *     // One sub-array per copy of the widget, keyed by delta.
+ *     0 => array(
+ *       '#entity_type' => The name of the entity type,
+ *       '#bundle' => The name of the bundle,
  *       '#field_name' => The name of the field,
- *       '#language' => $langcode,
  *       '#field_parents' => The 'parents' space for the field in the form,
  *          equal to the #parents property of the $form parameter received by
  *          field_attach_form(),
- *       '#required' => Whether or not the field is required,
- *       '#title' => The label of the field instance,
- *       '#description' => The description text for the field instance,
- *
- *       // Only for 'single' widgets:
- *       '#theme' => 'field_multiple_value_form',
- *       '#cardinality' => The field cardinality,
- *       // One sub-array per copy of the widget, keyed by delta.
- *       0 => array(
- *         '#entity_type' => The name of the entity type,
- *         '#bundle' => The name of the bundle,
- *         '#field_name' => The name of the field,
- *         '#field_parents' => The 'parents' space for the field in the form,
- *            equal to the #parents property of the $form parameter received by
- *            field_attach_form(),
- *         '#title' => The title to be displayed by the widget,
- *         '#default_value' => The field value for delta 0,
- *         '#required' => Whether the widget should be marked required,
- *         '#delta' => 0,
- *         // The remaining elements in the sub-array depend on the widget.
- *         '#type' => The type of the widget,
- *         ...
- *       ),
- *       1 => array(
- *         ...
- *       ),
- *
- *       // Only for multiple widgets:
- *       '#entity_type' => The name of the entity type,
- *       '#bundle' => $instance['bundle'],
+ *       '#title' => The title to be displayed by the widget,
+ *       '#default_value' => The field value for delta 0,
+ *       '#required' => Whether the widget should be marked required,
+ *       '#delta' => 0,
  *       // The remaining elements in the sub-array depend on the widget.
  *       '#type' => The type of the widget,
  *       ...
  *     ),
+ *     1 => array(
+ *       ...
+ *     ),
+ *
+ *     // Only for multiple widgets:
+ *     '#entity_type' => The name of the entity type,
+ *     '#bundle' => $instance['bundle'],
+ *     // The remaining elements in the sub-array depend on the widget.
+ *     '#type' => The type of the widget,
  *     ...
  *   ),
  * )
diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php
index 4cf4556..39b80ef 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php
@@ -58,13 +58,8 @@ public function __construct($plugin_id, array $plugin_definition, FieldDefinitio
    */
   public function form(EntityInterface $entity, $langcode, FieldInterface $items, array &$form, array &$form_state, $get_delta = NULL) {
     $field_name = $this->fieldDefinition->getFieldName();
-
     $parents = $form['#parents'];
 
-    $addition = array(
-      $field_name => array(),
-    );
-
     // Store field information in $form_state.
     if (!field_form_get_state($parents, $field_name, $langcode, $form_state)) {
       $field_state = array(
@@ -110,19 +105,6 @@ public function form(EntityInterface $entity, $langcode, FieldInterface $items,
       $elements = $this->formMultipleElements($entity, $items, $langcode, $form, $form_state);
     }
 
-    // Also aid in theming of field widgets by rendering a classified
-    // container.
-    $addition[$field_name] = array(
-      '#type' => 'container',
-      '#attributes' => array(
-        'class' => array(
-          'field-type-' . drupal_html_class($this->fieldDefinition->getFieldType()),
-          'field-name-' . drupal_html_class($field_name),
-          'field-widget-' . drupal_html_class($this->getPluginId()),
-        ),
-      ),
-    );
-
     // Populate the 'array_parents' information in $form_state['field'] after
     // the form is built, so that we catch changes in the form structure performed
     // in alter() hooks.
@@ -131,16 +113,29 @@ public function form(EntityInterface $entity, $langcode, FieldInterface $items,
     $elements['#language'] = $langcode;
     $elements['#field_parents'] = $parents;
 
-    $addition[$field_name] += array(
-      '#tree' => TRUE,
-      // The '#language' key can be used to access the field's form element
-      // when $langcode is unknown.
-      '#language' => $langcode,
-      $langcode => $elements,
-      '#access' => $this->checkFieldAccess('edit', $entity),
+    // Force field access.
+    $elements['#access'] = $this->checkFieldAccess('edit', $entity);
+
+    // Most widgets need their internal structure reflected in submitted values.
+    $elements += array('#tree' => TRUE, '#parents' => array_merge($parents, array($field_name)));
+
+    $return = array(
+      // @todo should we include the $field_name ourselves ?
+      $field_name => array(
+        // Aid in theming of widgets by rendering a classified container.
+        '#type' => 'container',
+        '#attributes' => array(
+          'class' => array(
+            'field-type-' . drupal_html_class($this->fieldDefinition->getFieldType()),
+            'field-name-' . drupal_html_class($field_name),
+            'field-widget-' . drupal_html_class($this->getPluginId()),
+          ),
+        ),
+        'widget' => $elements,
+      ),
     );
 
-    return $addition;
+    return $return;
   }
 
   /**
@@ -285,7 +280,7 @@ public function extractFormValues(EntityInterface $entity, $langcode, FieldInter
     $field_name = $this->fieldDefinition->getFieldName();
 
     // Extract the values from $form_state['values'].
-    $path = array_merge($form['#parents'], array($field_name, $langcode));
+    $path = array_merge($form['#parents'], array($field_name));
     $key_exists = NULL;
     $values = NestedArray::getValue($form_state['values'], $path, $key_exists);
 
diff --git a/core/modules/field/lib/Drupal/field/Tests/NestedFormTest.php b/core/modules/field/lib/Drupal/field/Tests/NestedFormTest.php
index e812ff5..a83df9b 100644
--- a/core/modules/field/lib/Drupal/field/Tests/NestedFormTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/NestedFormTest.php
@@ -93,19 +93,19 @@ function testNestedFieldForm() {
 
     // Display the 'combined form'.
     $this->drupalGet('test-entity/nested/1/2');
-    $this->assertFieldByName('field_single[und][0][value]', 0, 'Entity 1: field_single value appears correctly is the form.');
-    $this->assertFieldByName('field_unlimited[und][0][value]', 1, 'Entity 1: field_unlimited value 0 appears correctly is the form.');
-    $this->assertFieldByName('entity_2[field_single][und][0][value]', 10, 'Entity 2: field_single value appears correctly is the form.');
-    $this->assertFieldByName('entity_2[field_unlimited][und][0][value]', 11, 'Entity 2: field_unlimited value 0 appears correctly is the form.');
+    $this->assertFieldByName('field_single[0][value]', 0, 'Entity 1: field_single value appears correctly is the form.');
+    $this->assertFieldByName('field_unlimited[0][value]', 1, 'Entity 1: field_unlimited value 0 appears correctly is the form.');
+    $this->assertFieldByName('entity_2[field_single][0][value]', 10, 'Entity 2: field_single value appears correctly is the form.');
+    $this->assertFieldByName('entity_2[field_unlimited][0][value]', 11, 'Entity 2: field_unlimited value 0 appears correctly is the form.');
 
     // Submit the form and check that the entities are updated accordingly.
     $edit = array(
-      'field_single[und][0][value]' => 1,
-      'field_unlimited[und][0][value]' => 2,
-      'field_unlimited[und][1][value]' => 3,
-      'entity_2[field_single][und][0][value]' => 11,
-      'entity_2[field_unlimited][und][0][value]' => 12,
-      'entity_2[field_unlimited][und][1][value]' => 13,
+      'field_single[0][value]' => 1,
+      'field_unlimited[0][value]' => 2,
+      'field_unlimited[1][value]' => 3,
+      'entity_2[field_single][0][value]' => 11,
+      'entity_2[field_unlimited][0][value]' => 12,
+      'entity_2[field_unlimited][1][value]' => 13,
     );
     $this->drupalPost(NULL, $edit, t('Save'));
     field_cache_clear();
@@ -119,14 +119,14 @@ function testNestedFieldForm() {
     // Submit invalid values and check that errors are reported on the
     // correct widgets.
     $edit = array(
-      'field_unlimited[und][1][value]' => -1,
+      'field_unlimited[1][value]' => -1,
     );
     $this->drupalPost('test-entity/nested/1/2', $edit, t('Save'));
     $this->assertRaw(t('%label does not accept the value -1', array('%label' => 'Unlimited field')), 'Entity 1: the field validation error was reported.');
     $error_field = $this->xpath('//input[@id=:id and contains(@class, "error")]', array(':id' => 'edit-field-unlimited-und-1-value'));
     $this->assertTrue($error_field, 'Entity 1: the error was flagged on the correct element.');
     $edit = array(
-      'entity_2[field_unlimited][und][1][value]' => -1,
+      'entity_2[field_unlimited][1][value]' => -1,
     );
     $this->drupalPost('test-entity/nested/1/2', $edit, t('Save'));
     $this->assertRaw(t('%label does not accept the value -1', array('%label' => 'Unlimited field')), 'Entity 2: the field validation error was reported.');
@@ -135,10 +135,10 @@ function testNestedFieldForm() {
 
     // Test that reordering works on both entities.
     $edit = array(
-      'field_unlimited[und][0][_weight]' => 0,
-      'field_unlimited[und][1][_weight]' => -1,
-      'entity_2[field_unlimited][und][0][_weight]' => 0,
-      'entity_2[field_unlimited][und][1][_weight]' => -1,
+      'field_unlimited[0][_weight]' => 0,
+      'field_unlimited[1][_weight]' => -1,
+      'entity_2[field_unlimited][0][_weight]' => 0,
+      'entity_2[field_unlimited][1][_weight]' => -1,
     );
     $this->drupalPost('test-entity/nested/1/2', $edit, t('Save'));
     field_cache_clear();
@@ -151,21 +151,21 @@ function testNestedFieldForm() {
     // 'Add more' button in the first entity:
     $this->drupalGet('test-entity/nested/1/2');
     $this->drupalPostAJAX(NULL, array(), 'field_unlimited_add_more');
-    $this->assertFieldByName('field_unlimited[und][0][value]', 3, 'Entity 1: field_unlimited value 0 appears correctly is the form.');
-    $this->assertFieldByName('field_unlimited[und][1][value]', 2, 'Entity 1: field_unlimited value 1 appears correctly is the form.');
-    $this->assertFieldByName('field_unlimited[und][2][value]', '', 'Entity 1: field_unlimited value 2 appears correctly is the form.');
-    $this->assertFieldByName('field_unlimited[und][3][value]', '', 'Entity 1: an empty widget was added for field_unlimited value 3.');
+    $this->assertFieldByName('field_unlimited[0][value]', 3, 'Entity 1: field_unlimited value 0 appears correctly is the form.');
+    $this->assertFieldByName('field_unlimited[1][value]', 2, 'Entity 1: field_unlimited value 1 appears correctly is the form.');
+    $this->assertFieldByName('field_unlimited[2][value]', '', 'Entity 1: field_unlimited value 2 appears correctly is the form.');
+    $this->assertFieldByName('field_unlimited[3][value]', '', 'Entity 1: an empty widget was added for field_unlimited value 3.');
     // 'Add more' button in the first entity (changing field values):
     $edit = array(
-      'entity_2[field_unlimited][und][0][value]' => 13,
-      'entity_2[field_unlimited][und][1][value]' => 14,
-      'entity_2[field_unlimited][und][2][value]' => 15,
+      'entity_2[field_unlimited][0][value]' => 13,
+      'entity_2[field_unlimited][1][value]' => 14,
+      'entity_2[field_unlimited][2][value]' => 15,
     );
     $this->drupalPostAJAX(NULL, $edit, 'entity_2_field_unlimited_add_more');
-    $this->assertFieldByName('entity_2[field_unlimited][und][0][value]', 13, 'Entity 2: field_unlimited value 0 appears correctly is the form.');
-    $this->assertFieldByName('entity_2[field_unlimited][und][1][value]', 14, 'Entity 2: field_unlimited value 1 appears correctly is the form.');
-    $this->assertFieldByName('entity_2[field_unlimited][und][2][value]', 15, 'Entity 2: field_unlimited value 2 appears correctly is the form.');
-    $this->assertFieldByName('entity_2[field_unlimited][und][3][value]', '', 'Entity 2: an empty widget was added for field_unlimited value 3.');
+    $this->assertFieldByName('entity_2[field_unlimited][0][value]', 13, 'Entity 2: field_unlimited value 0 appears correctly is the form.');
+    $this->assertFieldByName('entity_2[field_unlimited][1][value]', 14, 'Entity 2: field_unlimited value 1 appears correctly is the form.');
+    $this->assertFieldByName('entity_2[field_unlimited][2][value]', 15, 'Entity 2: field_unlimited value 2 appears correctly is the form.');
+    $this->assertFieldByName('entity_2[field_unlimited][3][value]', '', 'Entity 2: an empty widget was added for field_unlimited value 3.');
     // Save the form and check values are saved correctly.
     $this->drupalPost(NULL, array(), t('Save'));
     field_cache_clear();
diff --git a/core/modules/field/lib/Drupal/field/Tests/TranslationWebTest.php b/core/modules/field/lib/Drupal/field/Tests/TranslationWebTest.php
index d4b95da..1d4d8b6 100644
--- a/core/modules/field/lib/Drupal/field/Tests/TranslationWebTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/TranslationWebTest.php
@@ -120,7 +120,7 @@ function testFieldFormTranslationRevisions() {
     $edit = array(
       'user_id' => 1,
       'name' => $this->randomName(),
-      "{$field_name}[$langcode][0][value]" => $entity->{$field_name}->value,
+      "{$field_name}[0][value]" => $entity->{$field_name}->value,
       'revision' => TRUE,
     );
     $this->drupalPost($this->entity_type . '/manage/' . $entity->id() . '/edit', $edit, t('Save'));
diff --git a/core/modules/field/lib/Drupal/field/Tests/reEnableModuleFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/reEnableModuleFieldTest.php
index 0b5400d..2a3b539 100644
--- a/core/modules/field/lib/Drupal/field/Tests/reEnableModuleFieldTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/reEnableModuleFieldTest.php
@@ -80,13 +80,13 @@ function testReEnabledField() {
 
     // Display the article node form and verify the telephone widget is present.
     $this->drupalGet('node/add/article');
-    $this->assertFieldByName("field_telephone[und][0][value]", '', 'Widget found.');
+    $this->assertFieldByName("field_telephone[0][value]", '', 'Widget found.');
 
     // Submit an article node with a telephone field so data exist for the
     // field.
     $edit = array(
       "title" => $this->randomName(),
-      "field_telephone[und][0][value]" => "123456789",
+      "field_telephone[0][value]" => "123456789",
     );
     $this->drupalPost(NULL, $edit, t('Save'));
     $this->assertRaw('<a href="tel:123456789">');
@@ -97,7 +97,7 @@ function testReEnabledField() {
 
     // Display the article creation form and verify the widget still exists.
     $this->drupalGet('node/add/article');
-    $this->assertFieldByName("field_telephone[und][0][value]", '', 'Widget found.');
+    $this->assertFieldByName("field_telephone[0][value]", '', 'Widget found.');
 
     // Test that the module can't be disabled from the UI while there is data
     // for it's fields.
diff --git a/core/modules/filter/lib/Drupal/filter/Tests/FilterHtmlImageSecureTest.php b/core/modules/filter/lib/Drupal/filter/Tests/FilterHtmlImageSecureTest.php
index 90aaf1c..47e3ac1 100644
--- a/core/modules/filter/lib/Drupal/filter/Tests/FilterHtmlImageSecureTest.php
+++ b/core/modules/filter/lib/Drupal/filter/Tests/FilterHtmlImageSecureTest.php
@@ -117,7 +117,7 @@ function testImageSource() {
       $comment[] = '<img src="' . $image . '" testattribute="' . hash('sha256', $image) . '" />';
     }
     $edit = array(
-      'comment_body[und][0][value]' => implode("\n", $comment),
+      'comment_body[0][value]' => implode("\n", $comment),
     );
     $this->drupalPost('node/' . $this->node->id(), $edit, t('Save'));
     foreach ($images as $image => $converted) {
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeAccessBaseTableTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeAccessBaseTableTest.php
index ee55eb9..fb59b79 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeAccessBaseTableTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeAccessBaseTableTest.php
@@ -76,12 +76,12 @@ function testNodeAccessBasic() {
         );
         if ($is_private) {
           $edit['private'] = TRUE;
-          $edit['body[und][0][value]'] = 'private node';
-          $edit['field_tags[und]'] = 'private';
+          $edit['body[0][value]'] = 'private node';
+          $edit['field_tags'] = 'private';
         }
         else {
-          $edit['body[und][0][value]'] = 'public node';
-          $edit['field_tags[und]'] = 'public';
+          $edit['body[0][value]'] = 'public node';
+          $edit['field_tags'] = 'public';
         }
 
         $this->drupalPost('node/add/article', $edit, t('Save'));
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php b/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php
index e1a64a6..aaf8ffd 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php
@@ -72,7 +72,7 @@ function testMultilingualNodeForm() {
     $langcode = language_get_default_langcode('node', 'page');
     $title_key = "title";
     $title_value = $this->randomName(8);
-    $body_key = "body[$langcode][0][value]";
+    $body_key = 'body[0][value]';
     $body_value = $this->randomName(16);
 
     // Create node to edit.
@@ -114,10 +114,9 @@ function testMultilingualNodeForm() {
    */
   function testMultilingualDisplaySettings() {
     // Create "Basic page" content.
-    $langcode = language_get_default_langcode('node', 'page');
     $title_key = "title";
     $title_value = $this->randomName(8);
-    $body_key = "body[$langcode][0][value]";
+    $body_key = 'body[0][value]';
     $body_value = $this->randomName(16);
 
     // Create node to edit.
diff --git a/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php b/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php
index f777f36..3ca3ae2 100644
--- a/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php
+++ b/core/modules/number/lib/Drupal/number/Tests/NumberFieldTest.php
@@ -202,7 +202,7 @@ function testNumberIntegerField() {
     $rand_number = rand();
     $edit = array(
       'title' => $this->randomName(),
-      'field_' .$field_name . '[und][0][value]' => $rand_number,
+      'field_' .$field_name . '[0][value]' => $rand_number,
     );
     $this->drupalPost("node/add/$type", $edit, t('Save'));
 
diff --git a/core/modules/options/lib/Drupal/options/Tests/OptionsFieldUITest.php b/core/modules/options/lib/Drupal/options/Tests/OptionsFieldUITest.php
index 34f0a87..c7e8d44 100644
--- a/core/modules/options/lib/Drupal/options/Tests/OptionsFieldUITest.php
+++ b/core/modules/options/lib/Drupal/options/Tests/OptionsFieldUITest.php
@@ -321,7 +321,7 @@ function testNodeDisplay() {
 
     // Select a default value.
     $edit = array(
-      $this->field_name . '[und]' => '1',
+      $this->field_name => '1',
     );
     $this->drupalPost('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));
 
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
index 1ebccca..c937ffa 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
@@ -1344,11 +1344,11 @@ protected function drupalGetAJAX($path, array $options = array(), array $headers
    *   @code
    *   <textarea id="edit-body-und-0-value" class="text-full form-textarea
    *    resize-vertical" placeholder="" cols="60" rows="9"
-   *    name="body[und][0][value]"></textarea>
+   *    name="body[0][value]"></textarea>
    *   @endcode
    *   When testing this field using an $edit parameter, the code becomes:
    *   @code
-   *   $edit["body[und][0][value]"] = 'My test value';
+   *   $edit["body[0][value]"] = 'My test value';
    *   @endcode
    *
    *   A checkbox can be set to TRUE to be checked and should be set to FALSE to
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFormTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFormTest.php
index 3180909..338e17c 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFormTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFormTest.php
@@ -53,7 +53,7 @@ function testFormCRUD() {
    */
   function testEntityFormDisplayAlter() {
     $this->drupalGet('entity_test/add');
-    $altered_field = $this->xpath('//input[@name="field_test_text[und][0][value]" and @size="42"]');
+    $altered_field = $this->xpath('//input[@name="field_test_text[0][value]" and @size="42"]');
     $this->assertTrue(count($altered_field) === 1, 'The altered field has the correct size value.');
   }
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/Upgrade/FieldUpgradePathTest.php b/core/modules/system/lib/Drupal/system/Tests/Upgrade/FieldUpgradePathTest.php
index 13793c6..32acf9a 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Upgrade/FieldUpgradePathTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Upgrade/FieldUpgradePathTest.php
@@ -279,7 +279,7 @@ function testFieldUpgradeToConfig() {
     $value = $this->randomName();
     $edit = array(
       'title' => 'Node after CMI conversion',
-      'body[und][0][value]' => $value,
+      'body[0][value]' => $value,
     );
     $this->drupalPost('node/add/article', $edit, 'Save and publish');
     $this->assertText($value);
diff --git a/core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php b/core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php
index 8e290ba..73add51 100644
--- a/core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php
+++ b/core/modules/telephone/lib/Drupal/telephone/Tests/TelephoneFieldTest.php
@@ -82,13 +82,13 @@ function testTelephoneField() {
 
     // Display creation form.
     $this->drupalGet('node/add/article');
-    $this->assertFieldByName("field_telephone[und][0][value]", '', 'Widget found.');
+    $this->assertFieldByName("field_telephone[0][value]", '', 'Widget found.');
     $this->assertRaw('placeholder="123-456-7890"');
 
     // Test basic entery of telephone field.
     $edit = array(
       "title" => $this->randomName(),
-      "field_telephone[und][0][value]" => "123456789",
+      "field_telephone[0][value]" => "123456789",
     );
 
     $this->drupalPost(NULL, $edit, t('Save'));
@@ -97,7 +97,7 @@ function testTelephoneField() {
     // Add number with a space in it. Need to ensure it is stripped on output.
     $edit = array(
       "title" => $this->randomName(),
-      "field_telephone[und][0][value]" => "1234 56789",
+      "field_telephone[0][value]" => "1234 56789",
     );
 
     $this->drupalPost('node/add/article', $edit, t('Save'));
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
index 0318e74..458218c 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -231,17 +231,17 @@ function testRegistrationWithUserFields() {
     $edit['name'] = $name = $this->randomName();
     $edit['mail'] = $mail = $edit['name'] . '@example.com';
     // Missing input in required field.
-    $edit['test_user_field[und][0][value]'] = '';
+    $edit['test_user_field[0][value]'] = '';
     $this->drupalPost(NULL, $edit, t('Create new account'));
     $this->assertRaw(t('@name field is required.', array('@name' => $instance->label())), 'Field validation error was correctly reported.');
     // Invalid input.
-    $edit['test_user_field[und][0][value]'] = '-1';
+    $edit['test_user_field[0][value]'] = '-1';
     $this->drupalPost(NULL, $edit, t('Create new account'));
     $this->assertRaw(t('%name does not accept the value -1.', array('%name' => $instance->label())), 'Field validation error was correctly reported.');
 
     // Submit with valid data.
     $value = rand(1, 255);
-    $edit['test_user_field[und][0][value]'] = $value;
+    $edit['test_user_field[0][value]'] = $value;
     $this->drupalPost(NULL, $edit, t('Create new account'));
     // Check user fields.
     $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
@@ -256,7 +256,7 @@ function testRegistrationWithUserFields() {
       // Add two inputs.
       $value = rand(1, 255);
       $edit = array();
-      $edit['test_user_field[und][0][value]'] = $value;
+      $edit['test_user_field[0][value]'] = $value;
       if ($js == 'js') {
         $this->drupalPostAJAX(NULL, $edit, 'test_user_field_add_more');
         $this->drupalPostAJAX(NULL, $edit, 'test_user_field_add_more');
@@ -266,8 +266,8 @@ function testRegistrationWithUserFields() {
         $this->drupalPost(NULL, $edit, t('Add another item'));
       }
       // Submit with three values.
-      $edit['test_user_field[und][1][value]'] = $value + 1;
-      $edit['test_user_field[und][2][value]'] = $value + 2;
+      $edit['test_user_field[1][value]'] = $value + 1;
+      $edit['test_user_field[2][value]'] = $value + 2;
       $edit['name'] = $name = $this->randomName();
       $edit['mail'] = $mail = $edit['name'] . '@example.com';
       $this->drupalPost(NULL, $edit, t('Create new account'));
