diff --git a/domain_conf.module b/domain_conf.module
index 535d1fb..03f0962 100644
--- a/domain_conf.module
+++ b/domain_conf.module
@@ -465,7 +465,16 @@ function domain_conf_default_language($value = NULL) {
  *  A language object, stored by domain_conf_default_language().
  */
 function domain_conf_set_default_language($default_language) {
+  // Set 'language_default' variable only if it's changed in order to persist
+  // variables cache.
   if (!empty($default_language) && is_object($default_language)) {
-    variable_set('language_default', $default_language);
+    $table = domain_get_primary_table('variable');
+    $current_language = db_query("SELECT value FROM $table WHERE name = :name", array(':name' => 'language_default'))->fetchField();
+    if (!empty($current_language)) {
+      $current_language = unserialize($current_language);
+      if (is_object($current_language) && $current_language->language != $default_language->language) {
+        variable_set('language_default', $default_language);
+      }
+    }
   }
 }
