Index: trunk/core/kernel/application.php =================================================================== diff -u -r3360 -r3418 --- trunk/core/kernel/application.php (.../application.php) (revision 3360) +++ trunk/core/kernel/application.php (.../application.php) (revision 3418) @@ -922,7 +922,7 @@ { $params_str .= $join_string.$param.'='.$value; } - $ret .= preg_replace('/^&(.*)/', '?\\1', $params_str); + $ret .= preg_replace('/^'.$join_string.'(.*)/', '?\\1', $params_str); if ($encode) $ret = str_replace('\\', '%5C', $ret); return $ret; @@ -1018,10 +1018,12 @@ } $join_string = $encode ? '&' : '&'; + $params_str = ''; foreach ($params as $param => $value) { - $ret .= $join_string.$param.'='.$value; + $params_str .= $join_string.$param.'='.$value; } + $ret .= preg_replace('/^'.$join_string.'(.*)/', '?\\1', $params_str); if ($encode) $ret = str_replace('\\', '%5C', $ret); return $ret;