diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index edaf8ec..5a0c471 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -1474,19 +1474,19 @@ function install_import_translations(&$install_state) {
   if (!isset($standard_languages[$langcode])) {
     // Drupal does not know about this language, so we prefill its values with
     // our best guess. The user will be able to edit afterwards.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => $langcode,
       'name' => $langcode,
       'default' => TRUE,
-    );
+    ));
     language_save($language);
   }
   else {
     // A known predefined language, details will be filled in properly.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => $langcode,
       'default' => TRUE,
-    );
+    ));
     language_save($language);
   }
 
diff --git a/core/modules/entity/lib/Drupal/entity/Tests/EntityTranslationTest.php b/core/modules/entity/lib/Drupal/entity/Tests/EntityTranslationTest.php
index 9875b39..63786c2 100644
--- a/core/modules/entity/lib/Drupal/entity/Tests/EntityTranslationTest.php
+++ b/core/modules/entity/lib/Drupal/entity/Tests/EntityTranslationTest.php
@@ -60,10 +60,10 @@ class EntityTranslationTest extends WebTestBase {
     // Create test languages.
     $this->langcodes = array();
     for ($i = 0; $i < 3; ++$i) {
-      $language = (object) array(
+      $language = new Language(array(
         'langcode' => 'l' . $i,
         'name' => $this->randomString(),
-      );
+      ));
       $this->langcodes[$i] = $language->langcode;
       language_save($language);
     }
diff --git a/core/modules/field/lib/Drupal/field/Tests/TranslationTest.php b/core/modules/field/lib/Drupal/field/Tests/TranslationTest.php
index 57b3b5b..d60f286 100644
--- a/core/modules/field/lib/Drupal/field/Tests/TranslationTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/TranslationTest.php
@@ -55,10 +55,10 @@ class TranslationTest extends FieldTestBase {
     $this->instance = field_read_instance('test_entity', $this->field_name, 'test_bundle');
 
     for ($i = 0; $i < 3; ++$i) {
-      $language = (object) array(
+      $language = new Language(array(
         'langcode' => 'l' . $i,
         'name' => $this->randomString(),
-      );
+      ));
       language_save($language);
     }
   }
diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc
index a601d00..026dcc7 100644
--- a/core/modules/language/language.admin.inc
+++ b/core/modules/language/language.admin.inc
@@ -249,7 +249,7 @@ function language_admin_edit_form($form, &$form_state, $language) {
  */
 function _language_admin_common_controls(&$form, $language = NULL) {
   if (!is_object($language)) {
-    $language = new stdClass();
+    $language = new Language();
   }
   if (isset($language->langcode)) {
     $form['langcode_view'] = array(
@@ -330,11 +330,11 @@ function language_admin_add_custom_form_validate($form, &$form_state) {
 function language_admin_add_custom_form_submit($form, &$form_state) {
   $langcode = $form_state['values']['langcode'];
   // Custom language form.
-  $language = (object) array(
+  $language = new Language(array(
     'langcode' => $langcode,
     'name' => $form_state['values']['name'],
     'direction' => $form_state['values']['direction'],
-  );
+  ));
   language_save($language);
   drupal_set_message(t('The language %language has been created and can now be used.', array('%language' => $form_state['values']['name'])));
   $form_state['redirect'] = 'admin/config/regional/language';
@@ -348,9 +348,9 @@ function language_admin_add_predefined_form_submit($form, &$form_state) {
   $langcode = $form_state['values']['predefined_langcode'];
   include_once DRUPAL_ROOT . '/core/includes/standard.inc';
   $predefined = standard_language_list();
-  $language = (object) array(
+  $language = new Language(array(
     'langcode' => $langcode,
-  );
+  ));
   language_save($language);
   drupal_set_message(t('The language %language has been created and can now be used.', array('%language' => t($predefined[$langcode][0]))));
   $form_state['redirect'] = 'admin/config/regional/language';
diff --git a/core/modules/language/lib/Drupal/language/Tests/LanguageUILanguageNegotiationTest.php b/core/modules/language/lib/Drupal/language/Tests/LanguageUILanguageNegotiationTest.php
index d12bdfa..a3088f1 100644
--- a/core/modules/language/lib/Drupal/language/Tests/LanguageUILanguageNegotiationTest.php
+++ b/core/modules/language/lib/Drupal/language/Tests/LanguageUILanguageNegotiationTest.php
@@ -83,13 +83,13 @@ class LanguageUILanguageNegotiationTest extends WebTestBase {
     $language_domain = 'example.cn';
 
     // Setup the site languages by installing two languages.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => $langcode_browser_fallback,
-    );
+    ));
     language_save($language);
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => $langcode,
-    );
+    ));
     language_save($language);
 
     // We will look for this string in the admin/config screen to see if the
@@ -254,9 +254,9 @@ class LanguageUILanguageNegotiationTest extends WebTestBase {
   function testUrlLanguageFallback() {
     // Add the Italian language.
     $langcode_browser_fallback = 'it';
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => $langcode_browser_fallback,
-    );
+    ));
     language_save($language);
     $languages = language_list();
 
@@ -282,7 +282,7 @@ class LanguageUILanguageNegotiationTest extends WebTestBase {
     // Access the front page without specifying any valid URL language prefix
     // and having as browser language preference a non-default language.
     $http_header = array("Accept-Language: $langcode_browser_fallback;q=1");
-    $language = (object) array('langcode' => '');
+    $language = new Language(array('langcode' => ''));
     $this->drupalGet('', array('language' => $language), $http_header);
 
     // Check that the language switcher active link matches the given browser
@@ -302,9 +302,9 @@ class LanguageUILanguageNegotiationTest extends WebTestBase {
   function testLanguageDomain() {
     // Add the Italian language.
     $langcode = 'it';
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => $langcode,
-    );
+    ));
     language_save($language);
     $languages = language_list();
 
diff --git a/core/modules/locale/lib/Drupal/locale/Tests/LocaleUninstallTest.php b/core/modules/locale/lib/Drupal/locale/Tests/LocaleUninstallTest.php
index 00fb2b0..ba3e3ae 100644
--- a/core/modules/locale/lib/Drupal/locale/Tests/LocaleUninstallTest.php
+++ b/core/modules/locale/lib/Drupal/locale/Tests/LocaleUninstallTest.php
@@ -49,11 +49,11 @@ class LocaleUninstallTest extends WebTestBase {
   function testUninstallProcess() {
     $locale_module = array('locale', 'language');
 
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'fr',
       'name' => 'French',
       'default' => $this->langcode == 'fr',
-    );
+    ));
     language_save($language);
     // Reset statically cached language objects.
     language(NULL, TRUE);
diff --git a/core/modules/locale/locale.bulk.inc b/core/modules/locale/locale.bulk.inc
index 0581af4..1ff925c 100644
--- a/core/modules/locale/locale.bulk.inc
+++ b/core/modules/locale/locale.bulk.inc
@@ -101,9 +101,9 @@ function locale_translate_import_form_submit($form, &$form_state) {
     if (empty($language)) {
       include_once DRUPAL_ROOT . '/core/includes/standard.inc';
       $predefined = standard_language_list();
-      $language = (object) array(
+      $language = new Language(array(
         'langcode' => $form_state['values']['langcode'],
-      );
+      ));
       $language = language_save($language);
       drupal_set_message(t('The language %language has been created.', array('%language' => t($language->name))));
     }
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php
index 8a6ce99..01bb06f 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php
@@ -51,13 +51,13 @@ class NodeAccessLanguageTest extends NodeTestBase {
    */
   function testNodeAccess() {
     // Add Hungarian and Catalan.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'hu',
-    );
+    ));
     language_save($language);
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'ca',
-    );
+    ));
     language_save($language);
 
     // Tests the default access provided for a published Hungarian node.
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php b/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php
index f51342b..91c4068 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php
@@ -40,10 +40,10 @@ class NodeFieldMultilingualTestCase extends WebTestBase {
     $this->drupalLogin($admin_user);
 
     // Add a new language.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'it',
       'name' => 'Italian',
-    );
+    ));
     language_save($language);
 
     // Enable URL language detection and selection.
diff --git a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
index c46676d..1f759ae 100644
--- a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
+++ b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
@@ -54,13 +54,13 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
     // process should pick 'pt' based on the sreg.language being 'pt-BR'
     // (and falling back on least specific language given no pt-br available
     // locally).
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'pt',
-    );
+    ));
     language_save($language);
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'pt-pt',
-    );
+    ));
     language_save($language);
 
     // Use a User-supplied Identity that is the URL of an XRDS document.
@@ -109,9 +109,9 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
 
     // Save Portuguese, Brazil as an optional language. The process should pick
     // 'pt-br' based on the sreg.language later.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'pt-br',
-    );
+    ));
     language_save($language);
 
     // Use a User-supplied Identity that is the URL of an XRDS document.
@@ -246,13 +246,13 @@ class OpenIDRegistrationTest extends OpenIDTestBase {
 
     // Save Portuguese and Portuguese, Portugal as optional languages. The
     // process should pick 'pt-pt' as the more specific language.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'pt',
-    );
+    ));
     language_save($language);
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'pt-pt',
-    );
+    ));
     language_save($language);
 
     // Use a User-supplied Identity that is the URL of an XRDS document.
diff --git a/core/modules/search/lib/Drupal/search/Tests/SearchMultilingualEntityTest.php b/core/modules/search/lib/Drupal/search/Tests/SearchMultilingualEntityTest.php
index b3b555b..8c4194e 100644
--- a/core/modules/search/lib/Drupal/search/Tests/SearchMultilingualEntityTest.php
+++ b/core/modules/search/lib/Drupal/search/Tests/SearchMultilingualEntityTest.php
@@ -33,15 +33,15 @@ class SearchMultilingualEntityTest extends SearchTestBase {
     parent::setUp();
 
     // Add two new languages.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'hu',
       'name' => 'Hungarian',
-    );
+    ));
     language_save($language);
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'sv',
       'name' => 'Swedish',
-    );
+    ));
     language_save($language);
 
     // Make the body field translatable.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Common/HttpRequestTest.php b/core/modules/system/lib/Drupal/system/Tests/Common/HttpRequestTest.php
index 276d82e..c52fd46 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Common/HttpRequestTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Common/HttpRequestTest.php
@@ -133,10 +133,10 @@ class HttpRequestTest extends WebTestBase {
     $this->assertEqual($request->headers['content-language'], 'en', t('Content-Language HTTP header is English.'));
 
     // Add French language.
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'fr',
       'name' => 'French',
-    );
+    ));
     language_save($language);
 
     // Request front page in French and check for matching Content-language.
diff --git a/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php b/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
index f50917b..b026693 100644
--- a/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
@@ -170,10 +170,10 @@ class DateTimeTest extends WebTestBase {
     $this->assertFalse($format, 'Unlocalized date format resides not in localized table.');
 
     // Enable German language
-    $language = (object) array(
+    $language = new Language(array(
       'langcode' => 'de',
       'default' => TRUE,
-    );
+    ));
     language_save($language);
 
     $date_format = array(
