Index: branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php =================================================================== diff -u -r8291 -r8301 --- branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 8291) +++ branches/unlabeled/unlabeled-1.36.2/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 8301) @@ -719,15 +719,19 @@ */ function MainFrameLink($params) { - // check last_template in persistent session - $last_template = $this->Application->RecallPersistentVar('last_template_popup'); - if (!$last_template) { + $persistent = isset($params['persistent']) && $params['persistent']; + if ($persistent) { + // check last_template in persistent session + $last_template = $this->Application->RecallPersistentVar('last_template_popup'); + } + else { // check last_template in session $last_template = $this->Application->RecallVar('last_template_popup'); // because of m_opener=s there } if (!$last_template) { - return false; + $params['persistent'] = 1; + return $persistent ? false : $this->MainFrameLink($params); } list($index_file, $env) = explode('|', $last_template); @@ -749,7 +753,8 @@ if (in_array($vars['t'], $recursion_templates)) { // prevents redirect recursion OR old in-portal pages - return false; + $params['persistent'] = 1; + return $persistent ? false : $this->MainFrameLink($params); } $vars = array_merge_recursive2($vars, $params); Index: branches/unlabeled/unlabeled-1.57.2/core/kernel/session/session.php =================================================================== diff -u -r8235 -r8301 --- branches/unlabeled/unlabeled-1.57.2/core/kernel/session/session.php (.../session.php) (revision 8235) +++ branches/unlabeled/unlabeled-1.57.2/core/kernel/session/session.php (.../session.php) (revision 8301) @@ -810,8 +810,19 @@ // save last_template in persistant session if (!$wid) { if ($this->Application->IsAdmin()) { - // only for main window, not popups, not login template (used in adm:MainFrameLink tag) - $this->StorePersistentVar('last_template_popup', $last_template); + // only for main window, not popups, not login template, not temp mode (used in adm:MainFrameLink tag) + $temp_mode = false; + $passed = explode(',', $this->Application->GetVar('passed')); + foreach ($passed as $passed_prefix) { + if ($this->Application->GetVar($passed_prefix.'_mode')) { + $temp_mode = true; + break; + } + } + + if (!$temp_mode) { + $this->StorePersistentVar('last_template_popup', $last_template); + } } elseif ($this->Application->GetVar('admin') == 1) { $admin_session =& $this->Application->recallObject('Session.admin');