Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.259
diff -u -p -r1.259 filter.module
--- modules/filter/filter.module	29 May 2009 20:06:44 -0000	1.259
+++ modules/filter/filter.module	5 Jun 2009 08:30:47 -0000
@@ -825,9 +825,10 @@ function _filter_htmlcorrector($text) {
  */
 function _filter_url_parse_full_links($match) {
   $match[2] = decode_entities($match[2]);
-  $caption = check_plain(_filter_url_trim($match[2]));
+  $title = check_plain(urldecode($match[2]));
+  $caption = check_plain(_filter_url_trim(urldecode($match[2])));
   $match[2] = check_url($match[2]);
-  return $match[1] . '<a href="' . $match[2] . '" title="' . $match[2] . '">' . $caption . '</a>' . $match[5];
+  return $match[1] . '<a href="' . $match[2] . '" title="' . $title . '">' . $caption . '</a>' . $match[5];
 }
 
 /**
@@ -835,9 +836,10 @@ function _filter_url_parse_full_links($m
  */
 function _filter_url_parse_partial_links($match) {
   $match[2] = decode_entities($match[2]);
-  $caption = check_plain(_filter_url_trim($match[2]));
+  $title = check_plain(urldecode($match[2]));
+  $caption = check_plain(_filter_url_trim(urldecode($match[2])));
   $match[2] = check_plain($match[2]);
-  return $match[1] . '<a href="http://' . $match[2] . '" title="' . $match[2] . '">' . $caption . '</a>' . $match[3];
+  return $match[1] . '<a href="http://' . $match[2] . '" title="' . $title . '">' . $caption . '</a>' . $match[3];
 }
 
 /**
