diff --git a/core/lib/Drupal/Core/Language/Language.php b/core/lib/Drupal/Core/Language/Language.php
index 4f1605d..cf2248b 100644
--- a/core/lib/Drupal/Core/Language/Language.php
+++ b/core/lib/Drupal/Core/Language/Language.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\Core\Language;
 
+use Drupal\Component\Utility\SortArray;
+
 /**
  * An object containing the information for an interface language.
  *
@@ -217,7 +219,9 @@ public function setNegotiationMethodId($method_id) {
    *   The array of language objects keyed by langcode.
    */
   public static function sort(&$languages) {
-    uasort($languages, 'Drupal\Component\Utility\SortArray::sortByWeightAndTitleKey');
+    uasort($languages, function ($a, $b) {
+      return SortArray::sortByWeightAndTitleKey($a, $b, 'weight', 'name');
+    });
   }
 
 }
diff --git a/core/scripts/run-tests.sh b/core/scripts/run-tests.sh
index 88ba503..d049265 100755
--- a/core/scripts/run-tests.sh
+++ b/core/scripts/run-tests.sh
@@ -67,7 +67,8 @@
   exit;
 }
 
-$test_list = simpletest_script_get_test_list();
+//$test_list = simpletest_script_get_test_list();
+$test_list = array_fill(0,50,'\Drupal\system\Tests\Entity\EntityQueryTest');
 
 // Try to allocate unlimited time to run the tests.
 drupal_set_time_limit(0);
diff --git a/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php b/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
index 7abed94..997fd95 100644
--- a/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Language/LanguageUnitTest.php
@@ -91,4 +91,94 @@ public function testGetNegotiationMethodId() {
     $this->assertSame($method_id, $this->language->getNegotiationMethodId());
   }
 
+  /**
+   * Tests sorting an array of Language objects.
+   *
+   * @dataProvider providerTestSortArrayOfLanguages
+   *
+   * @param \Drupal\Core\Language\Language[] $languages
+   *   An array of \Drupal\Core\Language\Language objects.
+   * @param array $expected
+   *   The expected array of keys.
+   */
+  public function testSortArrayOfLanguages(array $languages, array $expected) {
+    Language::sort($languages);
+    reset($expected);
+    reset($languages);
+    $this->assertEquals(current($expected), key($languages));
+    next($expected);
+    next($languages);
+    $this->assertEquals(current($expected), key($languages));
+  }
+
+  /**
+   * Provides data for testSortArrayOfLanguages.
+   *
+   * @return array
+   *   An array of test data.
+   */
+  public function providerTestSortArrayOfLanguages() {
+    $language9A = new Language();
+    $language9A->setName('A');
+    $language9A->setWeight(9);
+    $language9A->setId('dd');
+    $language10A = new Language();
+    $language10A->setName('A');
+    $language10A->setWeight(10);
+    $language10A->setId('ee');
+    $language10B = new Language();
+    $language10B->setName('B');
+    $language10B->setWeight(10);
+    $language10B->setId('ff');
+
+    return array(
+      // Set up data set #1, already ordered by weight.
+      array(
+        // Set the data.
+        array(
+          $language9A->getId() => $language9A,
+          $language10B->getId() => $language10B,
+        ),
+        // Set the expected key order.
+        array(
+          $language9A->getId(),
+          $language10B->getId(),
+        ),
+      ),
+      // Set up data set #2, out of order by weight.
+      array(
+        array(
+          $language10B->getId() => $language10B,
+          $language9A->getId() => $language9A,
+        ),
+        array(
+          $language9A->getId(),
+          $language10B->getId(),
+        ),
+      ),
+      // Set up data set #3, tied by weight, already ordered by name.
+      array(
+        array(
+          $language10A->getId() => $language10A,
+          $language10B->getId() => $language10B,
+        ),
+        array(
+          $language10A->getId(),
+          $language10B->getId(),
+        ),
+      ),
+      // Set up data set #4, tied by weight, out of order by name.
+      array(
+        array(
+          $language10B->getId() => $language10B,
+          $language10A->getId() => $language10A,
+        ),
+        array(
+          $language10A->getId(),
+          $language10B->getId(),
+        ),
+      ),
+    );
+  }
+
 }
