diff --git a/domain_variable.module b/domain_variable.module
index 5ebc55c..a835a48 100644
--- a/domain_variable.module
+++ b/domain_variable.module
@@ -52,21 +52,35 @@ function domain_variable_variable_realm_info() {
 function domain_variable_domain_bootstrap_full($domain) {
   // Avoid loading this for drush
   if (function_exists('drush_main')) return;
+
+  // Load global default realm. If we don't do this here, then for some
+  // variables (e.g. language_default) the default value will overrule the
+  // realm-specific value. Not sure why this happens. Should probably work
+  // without the line (?).
+  variable_realm_boot();
+
   // This is not the full domain array so we use domain_id here.
   $realm_key = _domain_variable_realm_key($domain['domain_id']);
-  // Handle language default variable that must be an object.
-  // @todo Get rid of this weird part, store language as object.
-  /*if (!empty($variables['language_default']) && !is_object($variables['language_default'])) {
-    $language_list = language_list();
-    if (isset($language_list[$variables['language_default']])) {
-      domain_variable_default_language(language_default());
-      $variables['language_default'] = $language_list[$variables['language_default']];
-    }
-    else {
-      unset($variables['language_default']);
-    }
-  }*/
+
   variable_realm_initialize('domain', $realm_key);
+
+  // Make sure that the javascript hash on the language_default value is up to
+  // date. The language_default variable stores the complete language object
+  // and therefore it can happen that the realm specific value becomes
+  // out-of-sync with the original language object.
+  // @see https://drupal.org/node/1271810 (original issue in domain_conf)
+  // @see https://drupal.org/node/1593494 (issue for domain_variable)
+  if (drupal_multilingual()) {
+    $languages = language_list('language');
+    $language_default = language_default();
+
+    // If the javascript hash has been changed in the language list, then we
+    // update the runtime realm value with the new hash.
+    if ($language_default->javascript != $languages[$language_default->language]->javascript) {
+      $language_default->javascript = $languages[$language_default->language]->javascript;
+      variable_realm_add('domain', $realm_key, array('language_default' => $language_default));
+    }
+  }
 }
 
 /**
