Index: trac/ticket/model.py
===================================================================
--- trac/ticket/model.py	(revision 5193)
+++ trac/ticket/model.py	(working copy)
@@ -119,6 +119,15 @@
                 value = value.strip()
         self.values[name] = value
 
+    def safe_get(self, name):
+        value = self[name]\
+
+        if name == 'cc':
+            value = ', '.join(['<%s@...>' % e.strip().split('@')[0] \
+                    for e in  value.split(',')])
+
+        return value
+
     def populate(self, values):
         """Populate the ticket with 'suitable' values from a dictionary"""
         field_names = [f['name'] for f in self.fields]
Index: trac/ticket/templates/ticket.html
===================================================================
--- trac/ticket/templates/ticket.html	(revision 5193)
+++ trac/ticket/templates/ticket.html	(working copy)
@@ -116,7 +116,7 @@
                 <td py:if="idx == 0 or not fullrow"
                     class="${field and field.name in ('cc', 'keywords') and 'searchable' or None}"
                     colspan="${fullrow and 3 or None}">
-                  <py:if test="field">${ticket[field.name]}</py:if>
+                  <py:if test="field">${ticket.safe_get(field.name)}</py:if>
                 </td>
               </py:for>
             </tr>

