diff --git a/modules/locale/locale.admin.inc b/modules/locale/locale.admin.inc
index 3e4c6f1..11e52fd 100644
--- a/modules/locale/locale.admin.inc
+++ b/modules/locale/locale.admin.inc
@@ -468,6 +468,11 @@ function locale_languages_delete_form_submit($form, &$form_state) {
       ->condition('language', $form_state['values']['langcode'])
       ->execute();
     module_invoke_all('multilingual_settings_changed');
+    $enabled = language_list('enabled', TRUE);
+    if (isset($enabled['1'][$form_state['values']['langcode']])) {
+      unset($enabled['1'][$form_state['values']['langcode']]);
+    }
+    variable_set('language_count', count($enabled['1']));
     $variables = array('%locale' => $languages[$form_state['values']['langcode']]->name);
     drupal_set_message(t('The language %locale has been removed.', $variables));
     watchdog('locale', 'The language %locale has been removed.', $variables);
diff --git a/modules/locale/locale.test b/modules/locale/locale.test
index 765bfb6..f458f21 100644
--- a/modules/locale/locale.test
+++ b/modules/locale/locale.test
@@ -145,6 +145,13 @@ class LocaleConfigurationTest extends DrupalWebTestCase {
     $this->drupalGet('admin/config/regional/language/delete/' . $langcode);
     $this->assertResponse(404, t('Language no longer found.'));
 
+    // Make sure the "locale_count" variable is equal to the number of
+    // enabled languages.
+    $language_count_variable = variable_get('language_count', FALSE);
+    $enabled = language_list('enabled');
+    $enabled_language_count = count($enabled['1']);
+    $this->assertEqual($language_count_variable, $enabled_language_count, t('Language count is correct.'));
+
     // Ensure we can't delete the English language.
     $this->drupalGet('admin/config/regional/language/delete/en');
     $this->assertEqual($this->getUrl(), url('admin/config/regional/language', array('absolute' => TRUE)), t('Correct page redirection.'));
