diff --git a/trac/ticket/query.py b/trac/ticket/query.py
--- a/trac/ticket/query.py
+++ b/trac/ticket/query.py
@@ -693,7 +693,7 @@
                             doc='The default query for authenticated users.') 
     
     default_anonymous_query = Option('query', 'default_anonymous_query',  
-                               default='status!=closed&cc~=$USER', 
+                               default='status=!closed', 
                                doc='The default query for anonymous users.') 
 
     items_per_page = IntOption('query', 'items_per_page', 100,
diff --git a/trac/ticket/templates/ticket.html b/trac/ticket/templates/ticket.html
--- a/trac/ticket/templates/ticket.html
+++ b/trac/ticket/templates/ticket.html
@@ -137,9 +137,12 @@
                                     not in ('type', 'owner')]">
             <tr>
               <th id="h_reporter">Reported by:</th>
-              <td headers="h_reporter" class="searchable">${reporter_link}</td>
+              <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')"
diff --git a/trac/ticket/web_ui.py b/trac/ticket/web_ui.py
--- a/trac/ticket/web_ui.py
+++ b/trac/ticket/web_ui.py
@@ -124,10 +124,6 @@
         If set to 'default', this is equivalent to 'yes' for new environments
         but keeps the old behavior for upgraded environments (i.e. 'no').
         (''since 0.11'').""")
-    
-    unlinked_fields = ListOption('ticket', 'unlinked_fields', 
-                                 default=['estimatedhours', 'hours', 'totalhours'],
-                                 doc="fields to exclude from AutoQuery markup")
 
     # IContentConverter methods
 
@@ -1064,13 +1060,25 @@
         for key in field_changes:
             ticket[key] = field_changes[key]['new']
 
-    def _query_link(self, req, name, value):
-        """return a link to /query with the appropriate name and 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 _query_link_words(self, req, name, value):
+        """Splits a list of words and makes a query link to each separately"""
+        default = self.env.config.get('query', 'default_anonymous_query', '')
+        items = []
+        for word in value.split():
+            word = word.strip(",.;")
+            if word:
+                link = req.href('query', **{name: '~' + word}) \
+                            + (default and '&' + default or '') 
+                items.append((tag.a(word, href=link), ' '))
+        return tag(items)
 
     def _prepare_fields(self, req, ticket):
         context = Context.from_request(req, ticket.resource)
@@ -1079,8 +1087,8 @@
             name = field['name']
             type_ = field['type']
  
-            # enable a link to custom query for the field
-            if name not in self.unlinked_fields:
+            # enable a link to custom query for all choice fields
+            if type_ not in ['text', 'textarea']:
                 field['rendered'] = self._query_link(req, name, ticket[name])
 
             # per field settings
@@ -1117,9 +1125,13 @@
                 milestone = Resource('milestone', ticket[name])
                 field['rendered'] = render_resource_link(self.env, context,
                                                          milestone, 'compact')
+            elif name == 'keywords':
+                field['rendered'] = self._query_link_words(
+                                                req, name, ticket[name])
             elif name == 'cc':
                 emails = Chrome(self.env).format_emails(context, ticket[name])
-                field['rendered'] = emails
+                field['rendered'] = emails == ticket[name] and \
+                        self._query_link_words(req, name, emails) or emails
                 if ticket.exists and \
                         'TICKET_EDIT_CC' not in req.perm(ticket.resource):
                     cc = ticket._old.get('cc', ticket['cc'])
@@ -1148,7 +1160,8 @@
             elif type_ == 'checkbox':
                 value = ticket.values.get(name)
                 if value in ('1', '0'):
-                    field['rendered'] = value == '1' and _('yes') or _('no')
+                    field['rendered'] = self._query_link(req, name, value,
+                                value == '1' and _('yes') or _('no'))
                   
             # ensure sane defaults
             field.setdefault('optional', False)
@@ -1270,6 +1283,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 +1299,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):

