Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.261
diff -u -p -r1.261 filter.module
--- modules/filter/filter.module	13 Jun 2009 19:37:27 -0000	1.261
+++ modules/filter/filter.module	25 Jun 2009 17:20:36 -0000
@@ -832,9 +832,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];
 }
 
 /**
@@ -842,9 +843,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];
 }
 
 /**
