Index: branches/5.2.x/core/kernel/utility/opener_stack.php =================================================================== diff -u -N -r14895 -r14937 --- branches/5.2.x/core/kernel/utility/opener_stack.php (.../opener_stack.php) (revision 14895) +++ branches/5.2.x/core/kernel/utility/opener_stack.php (.../opener_stack.php) (revision 14937) @@ -1,6 +1,6 @@ data[$index], 2); - $fixed_env = str_replace(Array ('&', '%5C'), Array ('&', '\\'), $original_env); + $params = $this->Application->processQueryString($fixed_env, 'pass'); - // detect "__URLENCODE__" parameter value, used when opener stack element was built - // without it rebuilding opener stack element will convert all "&" to "&" elements - $params['__URLENCODE__'] = $original_env != $fixed_env ? 1 : 0; + // opener stack is used from JavaScript / redirecting, so any "&" could break it + $params['__URLENCODE__'] = 1; $template = kUtil::popParam('t', $params, '');