Index: trac/ticket/web_ui.py
===================================================================
--- trac/ticket/web_ui.py	(revision 7508)
+++ trac/ticket/web_ui.py	(working copy)
@@ -1064,13 +1064,13 @@
         for key in field_changes:
             ticket[key] = field_changes[key]['new']
 
-    def _query_link(self, req, name, value):
+    def _query_link(self, req, name, value, text=None):
         """return a link to /query with the appropriate name and value"""
         query = req.href('query', **{name:value})
         args = self.env.config.get('query', 'default_anonymous_query')
         if args:
             query = '%s&%s' % (query, args)
-        return tag.a(value, href=query)
+        return tag.a(text or value, href=query)
 
     def _prepare_fields(self, req, ticket):
         context = Context.from_request(req, ticket.resource)
@@ -1080,7 +1080,7 @@
             type_ = field['type']
  
             # enable a link to custom query for the field
-            if name not in self.unlinked_fields:
+            if name not in self.unlinked_fields and field['type'] != 'textarea':
                 field['rendered'] = self._query_link(req, name, ticket[name])
 
             # per field settings
@@ -1149,6 +1149,8 @@
                 value = ticket.values.get(name)
                 if value in ('1', '0'):
                     field['rendered'] = value == '1' and _('yes') or _('no')
+                    if name not in self.unlinked_fields:
+                        field['rendered'] = self._query_link(req, name, value, field['rendered'])
                   
             # ensure sane defaults
             field.setdefault('optional', False)
@@ -1270,6 +1272,14 @@
             ticket.values.update(values)
 
         context = Context.from_request(req, ticket.resource)
+
+        # Display the owner and reporter links when not obfuscated
+        chrome = Chrome(self.env)
+        for user in 'reporter', 'owner':
+            if chrome.format_author(req, ticket[user]) == ticket[user]:
+                data['%s_link' % user] = self._query_link(req, user,
+                                                            ticket[user])
+
         data.update({
             'context': context,
             'fields': fields, 'changes': changes,
@@ -1278,8 +1288,6 @@
             'action_controls': action_controls,
             'action': selected_action,
             'change_preview': change_preview,
-            'reporter_link': self._query_link(req, 'reporter', ticket['reporter']),
-            'owner_link': self._query_link(req, 'owner', ticket['owner'])
         })
 
     def rendered_changelog_entries(self, req, ticket, when=None):
Index: trac/ticket/templates/ticket.html
===================================================================
--- trac/ticket/templates/ticket.html	(revision 7508)
+++ trac/ticket/templates/ticket.html	(working copy)
@@ -136,10 +136,13 @@
                  py:with="fields = [f for f in fields if not f.skip and f.name
                                     not in ('type', 'owner')]">
             <tr>
-              <th id="h_reporter">Reported by:</th>
-              <td headers="h_reporter" class="searchable">${reporter_link}</td>
+	      <th id="h_reporter">Reported by:</th>
+	      <td headers="h_reporter" class="searchable">
+                ${defined('reporter_link') and reporter_link or authorinfo(ticket.reporter)}
+	      </td>
               <th id="h_owner">Owned by:</th>
-              <td headers="h_owner">${owner_link}
+              <td headers="h_owner">
+                ${defined('owner_link') and owner_link or authorinfo(ticket.owner)}
               </td>
             </tr>
             <tr py:for="row in group(fields, 2, lambda f: f.type != 'textarea')"

