Index: branches/5.1.x/core/units/forms/form_submissions/form_submissions_eh.php =================================================================== diff -u -N -r14241 -r14440 --- branches/5.1.x/core/units/forms/form_submissions/form_submissions_eh.php (.../form_submissions_eh.php) (revision 14241) +++ branches/5.1.x/core/units/forms/form_submissions/form_submissions_eh.php (.../form_submissions_eh.php) (revision 14440) @@ -1,6 +1,6 @@ SetDBField('IPAddress', $_SERVER['REMOTE_ADDR']); if ( !$object->GetDBField('ReferrerURL') ) { - $base_url = preg_quote($this->Application->BaseURL(), '/'); - $referrer = preg_replace('/^' . $base_url . '/', '/', $_SERVER['HTTP_REFERER'], 1); + $referrer = $this->Application->GetVar('original_referrer'); + if (!$referrer) { + $base_url = preg_quote($this->Application->BaseURL(), '/'); + $referrer = preg_replace('/^' . $base_url . '/', '/', $_SERVER['HTTP_REFERER'], 1); + } + $object->SetDBField('ReferrerURL', $referrer); } Index: branches/5.1.x/core/units/admin/admin_events_handler.php =================================================================== diff -u -N -r14402 -r14440 --- branches/5.1.x/core/units/admin/admin_events_handler.php (.../admin_events_handler.php) (revision 14402) +++ branches/5.1.x/core/units/admin/admin_events_handler.php (.../admin_events_handler.php) (revision 14440) @@ -1,6 +1,6 @@ Application->isAdmin ) { + return ; + } + $base_url = preg_quote($this->Application->BaseURL(), '/'); + $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; + + if ( $referrer && !preg_match('/^' . $base_url . '/', $referrer) ) { + $this->Application->Session->SetCookie('original_referrer', $referrer); + $this->Application->SetVar('original_referrer', $referrer); + } } /**