diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 6061569..ecdc577 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -2558,14 +2558,13 @@ function language_list($field = 'language') {
 }
 
 /**
- * Default language used on the site
+ * Default language used on the site.
  *
- * @param $property
- *   Optional property of the language object to return
+ * @return
+ *   A language object.
  */
-function language_default($property = NULL) {
-  $language = variable_get('language_default', (object) array('language' => 'en', 'name' => 'English', 'native' => 'English', 'direction' => 0, 'enabled' => 1, 'plurals' => 0, 'formula' => '', 'domain' => '', 'prefix' => '', 'weight' => 0, 'javascript' => ''));
-  return $property ? $language->$property : $language;
+function language_default() {
+  return variable_get('language_default', (object) array('language' => 'en', 'name' => 'English', 'native' => 'English', 'direction' => 0, 'enabled' => 1, 'plurals' => 0, 'formula' => '', 'domain' => '', 'prefix' => '', 'weight' => 0, 'javascript' => ''));
 }
 
 /**
diff --git a/includes/locale.inc b/includes/locale.inc
index f667d30..81a1294 100644
--- a/includes/locale.inc
+++ b/includes/locale.inc
@@ -703,7 +703,7 @@ function _locale_rebuild_js($langcode = NULL) {
     // Update the default language variable if the default language has been altered.
     // This is necessary to keep the variable consistent with the database
     // version of the language and to prevent checking against an outdated hash.
-    $default_langcode = language_default('language');
+    $default_langcode = language_default()->language;
     if ($default_langcode == $language->language) {
       $default = db_query("SELECT * FROM {languages} WHERE language = :language", array(':language' => $default_langcode))->fetchObject();
       variable_set('language_default', $default);
diff --git a/modules/field/field.multilingual.inc b/modules/field/field.multilingual.inc
index 5373d97..b7b791d 100644
--- a/modules/field/field.multilingual.inc
+++ b/modules/field/field.multilingual.inc
@@ -228,7 +228,7 @@ function field_valid_language($langcode, $default = TRUE) {
     return $langcode;
   }
   global $language_content;
-  return $default ? language_default('language') : $language_content->language;
+  return $default ? language_default()->language : $language_content->language;
 }
 
 /**
diff --git a/modules/locale/locale.admin.inc b/modules/locale/locale.admin.inc
index 79ec3a1..11630d0 100644
--- a/modules/locale/locale.admin.inc
+++ b/modules/locale/locale.admin.inc
@@ -52,7 +52,7 @@ function locale_languages_overview_form() {
     '#title' => t('Default language'),
     '#title_display' => 'invisible',
     '#options' => $options,
-    '#default_value' => language_default('language'),
+    '#default_value' => language_default()->language,
   );
   $form['actions'] = array('#type' => 'actions');
   $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save configuration'));
@@ -392,7 +392,7 @@ function locale_languages_edit_form_validate($form, &$form_state) {
   if (!empty($form_state['values']['domain']) && $duplicate = db_query("SELECT language FROM {languages} WHERE domain = :domain AND language <> :language", array(':domain' => $form_state['values']['domain'], ':language' => $form_state['values']['langcode']))->fetchField()) {
     form_set_error('domain', t('The domain (%domain) is already tied to a language (%language).', array('%domain' => $form_state['values']['domain'], '%language' => $duplicate->language)));
   }
-  if (empty($form_state['values']['prefix']) && language_default('language') != $form_state['values']['langcode'] && empty($form_state['values']['domain'])) {
+  if (empty($form_state['values']['prefix']) && language_default()->language != $form_state['values']['langcode'] && empty($form_state['values']['domain'])) {
     form_set_error('prefix', t('Only the default language can have both the domain and prefix empty.'));
   }
   if (!empty($form_state['values']['prefix']) && $duplicate = db_query("SELECT language FROM {languages} WHERE prefix = :prefix AND language <> :language", array(':prefix' => $form_state['values']['prefix'], ':language' => $form_state['values']['langcode']))->fetchField()) {
@@ -439,7 +439,7 @@ function locale_languages_delete_form($form, &$form_state, $langcode) {
     drupal_goto('admin/config/regional/language');
   }
 
-  if (language_default('language') == $langcode) {
+  if (language_default()->language == $langcode) {
     drupal_set_message(t('The default language cannot be deleted.'));
     drupal_goto('admin/config/regional/language');
   }
diff --git a/modules/path/path.test b/modules/path/path.test
index f42ec81..9e50178 100644
--- a/modules/path/path.test
+++ b/modules/path/path.test
@@ -477,7 +477,7 @@ class PathMonolingualTestCase extends DrupalWebTestCase {
 
     // Verify that French is the only language.
     $this->assertFalse(drupal_multilingual(), t('Site is mono-lingual'));
-    $this->assertEqual(language_default('language'), 'fr', t('French is the default language'));
+    $this->assertEqual(language_default()->language, 'fr', t('French is the default language'));
 
     // Set language detection to URL.
     $edit = array('language[enabled][locale-url]' => TRUE);
