diff --git a/CHANGELOG b/CHANGELOG
index 511cb92e8..cab99352a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix incorrect handling of some specific links (#1489060)
- Fix incorrect handling of leading spaces in text wrapping
- Fix unintentional messages list jumps on click in Internet Explorer (#1489056)
- Fix list of required configuration options (#1489055)
diff --git a/program/lib/Roundcube/rcube_string_replacer.php b/program/lib/Roundcube/rcube_string_replacer.php
index 49a378166..02d5856cc 100644
--- a/program/lib/Roundcube/rcube_string_replacer.php
+++ b/program/lib/Roundcube/rcube_string_replacer.php
@@ -89,7 +89,7 @@ class rcube_string_replacer
if ($url) {
$suffix = $this->parse_url_brackets($url);
- $i = $this->add($prefix . html::a(array(
+ $i = $this->add(html::a(array(
'href' => $url_prefix . $url,
'target' => '_blank'
), rcube::Q($url)) . $suffix);
@@ -97,7 +97,7 @@ class rcube_string_replacer
// Return valid link for recognized schemes, otherwise
// return the unmodified string for unrecognized schemes.
- return $i >= 0 ? $this->get_replacement($i) : $matches[0];
+ return $i >= 0 ? $prefix . $this->get_replacement($i) : $matches[0];
}
/**
diff --git a/tests/Framework/StringReplacer.php b/tests/Framework/StringReplacer.php
index e630ebac0..ee9efac4e 100644
--- a/tests/Framework/StringReplacer.php
+++ b/tests/Framework/StringReplacer.php
@@ -37,6 +37,8 @@ class Framework_StringReplacer extends PHPUnit_Framework_TestCase
array('http://link.com?(link)', 'http://link.com?(link)'),
array('http://', 'http://'),
array('http://', 'http://'),
+ array('1@1.com www.domain.tld', '1@1.com www.domain.tld'),
+ array(' www.domain.tld ', ' www.domain.tld '),
);
}