diff --git a/reviewboard/reviews/datagrids.py b/reviewboard/reviews/datagrids.py
index b61cf77fdb489e7947706aac316fb4bb693713fa..6a00884108e159be16348b465424552fc8966c0f 100644
--- a/reviewboard/reviews/datagrids.py
+++ b/reviewboard/reviews/datagrids.py
@@ -1,3 +1,4 @@
+import logging
 import pytz
 
 from django.contrib.auth.models import User
@@ -323,6 +324,29 @@ class SubmitterColumn(Column):
         return queryset.select_related('submitter')
 
 
+class BugsColumn(Column):
+    def __init__(self, *args, **kwargs):
+        super(BugsColumn, self).__init__(_("Bugs"), shrink=True,
+                                         sortable=False, link=False, *args,
+                                         **kwargs)
+
+    def render_data(self, review_request):
+        if (review_request.repository and
+                review_request.repository.bug_tracker):
+            bug_url = review_request.repository.bug_tracker
+            bugs = review_request.get_bug_list()
+
+            try:
+                return ','.join([
+                    '<a href="%s">%s</a>' % (bug_url % bug, bug)
+                    for bug in bugs
+                ])
+            except TypeError:
+                logging.warning('Invalid bug tracker format when rendering'
+                                'bugs column: %s' % bug_url)
+        return review_request.bugs_closed
+
+
 class RepositoryColumn(Column):
     def __init__(self, *args, **kwargs):
         Column.__init__(self, _("Repository"), db_field="repository__name",
@@ -480,8 +504,7 @@ class ReviewRequestDataGrid(DataGrid):
 
     branch       = Column(_("Branch"), db_field="branch",
                           shrink=True, sortable=True, link=False)
-    bugs_closed  = Column(_("Bugs"), db_field="bugs_closed",
-                          shrink=True, sortable=False, link=False)
+    bugs_closed  = BugsColumn()
     repository   = RepositoryColumn()
     time_added   = DateTimeColumn(_("Posted"),
         detailed_label=_("Posted Time"),
