diff --git a/opentech/apply/activity/migrations/0001_initial.py b/opentech/apply/activity/migrations/0001_initial.py
index b5e7d8c3be47f7ad5afd532ae439e69b16fb976d..123a96d01492ebf7d8bbf918c3307736312fbf54 100644
--- a/opentech/apply/activity/migrations/0001_initial.py
+++ b/opentech/apply/activity/migrations/0001_initial.py
@@ -27,6 +27,7 @@ class Migration(migrations.Migration):
                 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
             ],
             options={
+                'base_manager_name': 'objects',
                 'ordering': ['-timestamp'],
             },
         ),
diff --git a/opentech/apply/activity/models.py b/opentech/apply/activity/models.py
index 4598929ccd285bd8930b72f2169212f77d1cd4ed..ece98c60b9dd630e1d2cf145460e141240901123 100644
--- a/opentech/apply/activity/models.py
+++ b/opentech/apply/activity/models.py
@@ -18,6 +18,16 @@ VISIBILITY = {
 }
 
 
+class BaseActivityQuerySet(models.QuerySet):
+    def visible_to(self, user):
+        return self.filter(visibility__in=self.model.visibility_for(user))
+
+
+class ActivityQuerySet(BaseActivityQuerySet):
+    def comments(self):
+        return self.filter(type=COMMENT)
+
+
 class ActivityBaseManager(models.Manager):
     def create(self, **kwargs):
         kwargs.update(type=self.type)
@@ -27,9 +37,8 @@ class ActivityBaseManager(models.Manager):
         return super().get_queryset().filter(type=self.type)
 
 
-class CommentQueryset(models.QuerySet):
-    def visibile_to(self, user):
-        return self.filter(visibility__in=self.model.visibility_for(user))
+class CommentQueryset(BaseActivityQuerySet):
+    pass
 
 
 class CommentManger(ActivityBaseManager):
@@ -48,12 +57,13 @@ class Activity(models.Model):
     message = models.TextField()
     visibility = models.CharField(choices=VISIBILITY.items(), default=PUBLIC, max_length=10)
 
-    objects = models.Manager()
+    objects = models.Manager.from_queryset(ActivityQuerySet)()
     comments = CommentManger.from_queryset(CommentQueryset)()
     actions = ActionManager()
 
     class Meta:
         ordering = ['-timestamp']
+        base_manager_name = 'objects'
 
     @property
     def private(self):
diff --git a/opentech/apply/activity/views.py b/opentech/apply/activity/views.py
index 033cd5fe772e64b367f493af150d4239e1a40393..3d67c5ec9e42992d9c5cfa8d24df023d36d041bc 100644
--- a/opentech/apply/activity/views.py
+++ b/opentech/apply/activity/views.py
@@ -23,7 +23,7 @@ class ActivityContextMixin:
     def get_context_data(self, **kwargs):
         extra = {
             'actions': Activity.actions.filter(submission=self.object),
-            'comments': Activity.comments.filter(submission=self.object).visibile_to(self.request.user),
+            'comments': Activity.comments.filter(submission=self.object).visible_to(self.request.user),
         }
 
         return super().get_context_data(**extra, **kwargs)
diff --git a/opentech/apply/funds/tables.py b/opentech/apply/funds/tables.py
index 689a196f533cb797e3932e13769da25fd11c4906..b203a70fefdf7d6a02647991d30922fd36707b1a 100644
--- a/opentech/apply/funds/tables.py
+++ b/opentech/apply/funds/tables.py
@@ -20,11 +20,13 @@ class SubmissionsTable(tables.Table):
     status_name = tables.Column(verbose_name="Status")
     stage = tables.Column(verbose_name="Type", order_by=('status',))
     page = tables.Column(verbose_name="Fund")
+    comments = tables.Column(accessor='activities.comments.all', verbose_name="Comments")
 
     class Meta:
         model = ApplicationSubmission
         order_by = ('-submit_time',)
         fields = ('title', 'status_name', 'stage', 'page', 'round', 'submit_time')
+        sequence = fields + ('comments',)
         template = 'funds/tables/table.html'
         row_attrs = {
             'class': lambda record: '' if record.active else 'is-inactive'
@@ -33,9 +35,13 @@ class SubmissionsTable(tables.Table):
     def render_user(self, value):
         return value.get_full_name()
 
-    def render_status_name(self, value, record):
+    def render_status_name(self, value):
         return mark_safe(f'<span>{ value }</span>')
 
+    def render_comments(self, value):
+        request = self.context['request']
+        return str(value.visible_to(request.user).count())
+
     def order_status_name(self, qs, desc):
         return qs.step_order(desc), True
 
@@ -46,6 +52,7 @@ class AdminSubmissionsTable(SubmissionsTable):
 
     class Meta(SubmissionsTable.Meta):
         fields = ('title', 'status_name', 'stage', 'page', 'round', 'lead', 'submit_time')  # type: ignore
+        sequence = fields + ('comments',)
 
 
 def get_used_rounds(request):