Index: includes/mail.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/mail.inc,v
retrieving revision 1.7
diff -u -r1.7 mail.inc
--- includes/mail.inc	4 Sep 2007 21:10:45 -0000	1.7
+++ includes/mail.inc	20 Jan 2008 02:17:16 -0000
@@ -409,6 +409,7 @@
     $tag = !$tag;
   }
 
+  _drupal_html_to_mail_urls(0);  // reset
   return $output . $footnotes;
 }
 
@@ -435,13 +436,19 @@
   if (empty($regexp)) {
     $regexp = '@^'. preg_quote($base_path, '@') .'@';
   }
-  if ($match) {
+  if (is_array($match)) {
     list(, , $url, $label) = $match;
     // Ensure all URLs are absolute.
-    $urls[] = strpos($url, '://') ? $url : preg_replace($regexp, $base_url .'/', $url);
-    return $label .' ['. count($urls) .']';
+    $url = strpos($url, '://') ? $url : preg_replace($regexp, $base_url .'/', $url);
+    if (!isset($urls[$url])) {
+      $urls[$url] = count($urls) + 1;
+    }
+    return $label .' ['. $urls[$url] .']';
   }
-  return $urls;
+  elseif (isset($match)) {
+    $urls = array();
+  }
+  return array_keys($urls);
 }
 
 /**
