diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/field/formatter/TestFieldWeightFormatter.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/field/formatter/TestFieldWeightFormatter.php
new file mode 100644
index 0000000..1021947
--- /dev/null
+++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/field/formatter/TestFieldWeightFormatter.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @file
+ *
+ * Contains \Drupal\field_test\Plugin\field\formatter\TestFieldWeightFormatter.
+ */
+namespace Drupal\field_test\Plugin\field\formatter;
+
+use Drupal\field\Annotation\FieldFormatter;
+use Drupal\Core\Annotation\Translation;
+use Drupal\Core\Entity\Field\FieldInterface;
+use Drupal\field\Plugin\Type\Formatter\FormatterBase;
+
+/**
+ * Plugin implementation of the 'field_weight_test' formatter.
+ *
+ * @FieldFormatter(
+ *   id = "field_weight_test",
+ *   label = @Translation("Field weight test"),
+ *   weight = -1,
+ *   field_types = {
+ *     "test_field",
+ *   }
+ * )
+ */
+class TestFieldWeightFormatter extends FormatterBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function viewElements(FieldInterface $items) {
+    $elements = array();
+
+    foreach ($items as $delta => $item) {
+      // This formatter only needs to output raw for testing.
+      $elements[$delta] = array('#markup' => $item->value);
+    }
+
+    return $elements;
+  }
+
+}
diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php
index daf263e..081757d 100644
--- a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php
+++ b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php
@@ -57,6 +57,13 @@ function testFormatterUI() {
     $this->assertFieldByName('fields[field_test][type]', $format, 'The expected formatter is selected.');
     $this->assertText("$setting_name: $setting_value", 'The expected summary is displayed.');
 
+    // Check whether formatter weights are respected
+    $result = $this->xpath('//select[@id=:id]/option[1]', array(':id' => 'edit-fields-field-test-type'));
+    $options = array_map(function($item) {
+      return (string) $item->attributes()->value[0];
+    }, $result);
+    $this->assertEqual($options, array('field_weight_test'), 'The expected formatter ordering is respected.');
+
     // Change the formatter and check that the summary is updated.
     $edit = array('fields[field_test][type]' => 'field_test_multiple', 'refresh_rows' => 'field_test');
     $this->drupalPostAjaxForm(NULL, $edit, array('op' => t('Refresh')));
