diff --git a/django/archives/mailarchives/templatetags/pgfilters.py b/django/archives/mailarchives/templatetags/pgfilters.py
index 6c38c18..337a1a3 100644
--- a/django/archives/mailarchives/templatetags/pgfilters.py
+++ b/django/archives/mailarchives/templatetags/pgfilters.py
@@ -14,11 +14,26 @@ def _rewrite_email(value):
 def hidemail(value):
 	return _rewrite_email(value)
 
-_re_mail = re.compile('[^()<>@,;:\/\s"\'&|]+@[^()<>@,;:\/\s"\'&|]+')
+# A regular expression and replacement function to mangle email addresses.
+#
+# The archived messages contain a lot of links to other messages in the
+# mailing list archives:
+#
+#  http://www.postgresql.org/message-id/1asd21das@mail.gmail.com
+#
+# Those are not email addresses, so ignore them. The links won't work if they
+# are mangled.
+_re_mail = re.compile('(/message-id/)?[^()<>@,;:\/\s"\'&|]+@[^()<>@,;:\/\s"\'&|]+')
+def _rewrite_email_match(match):
+	if match.group(1):
+		return match.group(0)	# was preceded by /message-id/
+	else:
+		return _rewrite_email(match.group(0))
+
 @register.filter(name='hideallemail')
 @stringfilter
 def hideallemail(value):
-	return _re_mail.sub(lambda x: _rewrite_email(x.group(0)), value)
+	return _re_mail.sub(lambda x: _rewrite_email_match(x), value)
 
 @register.filter(name='nameonly')
 @stringfilter
