--- i18n/i18n.module	2011-04-15 11:35:19.000000000 +0200
+++ i18n/i18nNEW.module	2011-04-15 10:23:06.000000000 +0200
@@ -49,11 +49,16 @@ function i18n_init() {
 function _i18n_init($check_frontpage = FALSE) {
   static $done, $default_frontpage;
   
+  /** spchange
+   * variables should be translated in init hook, not in boot so I put it outside of (!isset($done))
+   * this should prevent running twice as well as hook_boot runs this function without check_frontpage
+   */
+  if ($check_frontpage) i18n_variable_init();
+  
   // Prevent this function from running twice;
   if (!isset($done)) {
     $done = TRUE;
     $default_frontpage = variable_get('site_frontpage', 'node');
-    i18n_variable_init();
   }
   // We do aditional frontpage check if this has run after first bootstrap phase.
   // But if this runs in hook_boot we should be ok
@@ -701,6 +706,13 @@ function i18n_variable_form_submit($form
       if (!$is_default) {
         unset($form_state['values'][$key]);
       }
+      else {
+        /** spchange
+         * add else clause to get more security. If you go directly to a settings page in default lang and save it, all values will be overwritten
+         * this seems to solve the problem - but should be confirmed by community
+         */
+        if ($form['#i18n_variables'][$key]) unset($form_state['values'][$key]);
+      }      
     }
   }
   // The form will go now through system_settings_form_submit()
