diff --git a/core/lib/Drupal/Component/Utility/SortArray.php b/core/lib/Drupal/Component/Utility/SortArray.php
index a8d9f00..79688ec 100644
--- a/core/lib/Drupal/Component/Utility/SortArray.php
+++ b/core/lib/Drupal/Component/Utility/SortArray.php
@@ -93,34 +93,6 @@ public static function sortByTitleProperty($a, $b) {
    }
 
   /**
-   * Sorts a structured array firstly by weight, then by title.
-   *
-   * @param array $a
-   *   The first item to compare.
-   * @param array $b
-   *   The second item to compare.
-   * @param string $weight_key
-   *   (optional) The weight key to use. Defaults to 'weight'.
-   * @param string $title_key
-   *   (optional) The title key to use. Defaults to 'title'.
-   *
-   * @return int
-   *   The comparison result for uasort().
-   */
-  public static function sortByWeightAndTitleKey($a, $b, $weight_key = 'weight', $title_key = 'title') {
-    $a = (array) $a;
-    $b = (array) $b;
-
-    $weight_cmp = static::sortByKeyInt($a, $b, $weight_key);
-
-    if ($weight_cmp === 0) {
-      return static::sortByKeyString($a, $b, $title_key);
-    }
-
-    return $weight_cmp;
-  }
-
-  /**
    * Sorts a string array item by an arbitrary key.
    *
    * @param array $a
diff --git a/core/lib/Drupal/Core/Language/Language.php b/core/lib/Drupal/Core/Language/Language.php
index d8df0cb..dd9b23e 100644
--- a/core/lib/Drupal/Core/Language/Language.php
+++ b/core/lib/Drupal/Core/Language/Language.php
@@ -206,13 +206,16 @@ public function setNegotiationMethodId($method_id) {
   /**
    * Sort language objects.
    *
-   * @param array $languages
+   * @param \Drupal\Core\Language\Language[] $languages
    *   The array of language objects keyed by langcode.
    */
   public static function sort(&$languages) {
-    uasort($languages, function ($a, $b) {
-      return SortArray::sortByWeightAndTitleKey($a, $b, 'weight', 'name');
-    });
-  }
+    uasort($languages, function (Language $a, Language $b) {
+      if ($a->getWeight() == $b->getWeight()) {
+        return strnatcasecmp($a->getName(), $b->getName());
+    }
+
+    return ($a->getWeight() < $b->getWeight()) ? -1 : 1;
+  });
 
 }
diff --git a/core/tests/Drupal/Tests/Component/Utility/SortArrayTest.php b/core/tests/Drupal/Tests/Component/Utility/SortArrayTest.php
index ed1357b..c2804e4 100644
--- a/core/tests/Drupal/Tests/Component/Utility/SortArrayTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/SortArrayTest.php
@@ -314,106 +314,4 @@ public function providerSortByTitleProperty() {
     return $tests;
   }
 
-  /**
-   * Tests SortArray::sortByWeightAndTitleKey() input against expected output.
-   *
-   * @dataProvider providerTestSortByWeightAndTitleKey
-   *
-   * @param array $a
-   *   The first input item for comparison.
-   * @param array $b
-   *   The second item for comparison.
-   * @param integer $expected
-   *   The expected output from calling the method.
-   */
-  public function testSortByWeightAndTitleKey($a, $b, $expected) {
-    $result = SortArray::sortByWeightAndTitleKey($a, $b);
-    $this->assertEquals($expected, $result);
-  }
-
-  /**
-   * Data provider for testSortByWeightAndTitleKey.
-   *
-   * @return array
-   *   An array of test data.
-   */
-  public function providerTestSortByWeightAndTitleKey() {
-    $stdclass_title_1 = new \stdClass();
-    $stdclass_title_1->title = 'a';
-
-    $stdclass_title_2 = new \stdClass();
-    $stdclass_title_2->title = 'b';
-
-    $stdclass_weight_1 = new \stdClass();
-    $stdclass_weight_1->weight = 1;
-
-    $stdclass_weight_2 = new \stdClass();
-    $stdclass_weight_2->weight = 2;
-
-    $stdclass_weight_3 = clone $stdclass_weight_1;
-
-    return array(
-      array(
-        array(),
-        array(),
-        0
-      ),
-      array(
-        array('weight' => 1),
-        array('weight' => 2),
-        -1
-      ),
-      array(
-        array('weight' => 2),
-        array('weight' => 1),
-        1
-      ),
-      array(
-        array('title' => 'b', 'weight' => 1),
-        array('title' => 'a', 'weight' => 2),
-        -1
-      ),
-      array(
-        array('title' => 'a', 'weight' => 2),
-        array('title' => 'b', 'weight' => 1),
-        1
-      ),
-      array(
-        array('title' => 'a', 'weight' => 1),
-        array('title' => 'b', 'weight' => 1),
-        -1
-      ),
-      array(
-        array('title' => 'b', 'weight' => 1),
-        array('title' => 'a', 'weight' => 1),
-        1
-      ),
-      array(
-        array('title' => 'a'),
-        array('title' => 'b'),
-        -1
-      ),
-      array(
-        array('title' => 'A'),
-        array('title' => 'a'),
-        0
-      ),
-      array(
-        $stdclass_title_1,
-        $stdclass_title_2,
-        -1
-      ),
-      array(
-        $stdclass_weight_1,
-        $stdclass_weight_2,
-        -1
-      ),
-      array(
-        $stdclass_weight_1,
-        $stdclass_weight_3,
-        0
-      ),
-    );
-  }
-
 }
