--- trac/admin/web_ui.py	Wed May 13 15:24:34 2009
+++ trac/admin/web_ui.py.new	Fri Jul 03 12:59:18 2009
@@ -511,7 +511,22 @@
                             if k == 'home_page' or k == 'url':
                                 k = 'home_page'
                                 v = v.replace('$', '').replace('URL: ', '') 
-                            info[k] = v
+                            if k == 'author':
+                                v = to_unicode(v)
+                            
+                            info[k] = v
+                else:
+                    # Info found; set all those fields to "None" that have the 
+                    # value "UNKNOWN" as this is value for fields that aren't
+                    # specified within "setup.py"
+                    for k in info:
+                        if info[k] == 'UNKNOWN':
+                            info[k] = None
+                        elif k == 'author':
+                            # Must be encoded as unicode as otherwise Genshi 
+                            # may raise a "UnicodeDecodeError".
+                            info[k] = to_unicode(info[k])
+
                 # retrieve plugin version info
                 version = dist.version
                 if not version:
--- trac/admin/templates/admin_plugins.html	Wed May 13 15:24:34 2009
+++ trac/admin/templates/admin_plugins.html.new	Fri Jul 03 13:00:06 2009
@@ -61,7 +61,7 @@
               <dd>
                 <a py:strip="not plugin.info.get('author_email')"
                    href="mailto:${plugin.info.author_email}">
-                  ${plugin.info.author_email or plugin.info.author}
+                  ${plugin.info.author or plugin.info.author_email}
                 </a>
               </dd>
             </py:if>

