diff --git a/organizations/models.py b/organizations/models.py
index 07204100e7317e38cf8c63f5a1e7aaac82d32d5e..d6c211f232a2933462e5d1672f45a05f13de1979 100644
--- a/organizations/models.py
+++ b/organizations/models.py
@@ -88,10 +88,12 @@ class Organization(models.Model):
         return reverse('organizations:organization_details', kwargs = {'pk': self.id})
 
     def get_publications(self):
+        org_and_children_ids = [k['id'] for k in list(self.children.all().values('id'))]
+        org_and_children_ids += [self.id]
         return Publication.objects.filter(
-            models.Q(authors__affiliations__in=[self]) |
-            models.Q(grants__funder__organization=self) |
-            models.Q(funders_generic__organization=self)).distinct()
+            models.Q(authors__affiliations__pk__in=org_and_children_ids) |
+            models.Q(grants__funder__organization__pk__in=org_and_children_ids) |
+            models.Q(funders_generic__organization__pk__in=org_and_children_ids)).distinct()
 
     def count_publications(self):
         return self.get_publications().count()