Index: branches/RC/core/units/admin/admin_tag_processor.php =================================================================== diff -u -N -r11751 -r11850 --- branches/RC/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 11751) +++ branches/RC/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 11850) @@ -772,6 +772,9 @@ $t = $vars['t']; unset($vars['t'], $vars['persistent']); + // substitute language in link to current (link will work, even when language will be changed) + $vars['m_lang'] = $this->Application->GetVar('m_lang'); + return $this->Application->HREF($t, '', $vars, $index_file); } Index: branches/RC/core/units/languages/languages_event_handler.php =================================================================== diff -u -N -r11711 -r11850 --- branches/RC/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 11711) +++ branches/RC/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 11850) @@ -227,6 +227,11 @@ { $this->Application->SetVar('m_lang', $this->Application->GetVar('language')); + if ($this->Application->IsAdmin()) { + // without this language change in admin will cause erase of last remembered tree section + $this->Application->SetVar('skip_last_template', 1); + } + //$this->Application->LinkVar('language', 'm_lang'); }