diff --git a/apps/wei/tables.py b/apps/wei/tables.py
index e4d09fece2af3f294b4695e55ca0a15e818a280a..a6bc25c654849e7c8acb6db64d58818eaaaa96ef 100644
--- a/apps/wei/tables.py
+++ b/apps/wei/tables.py
@@ -147,7 +147,7 @@ class BusTable(tables.Table):
         return ", ".join(team.name for team in value.order_by('name').all())
 
     def render_count(self, value):
-        return str(value) + " " + (str(_("members")) if value > 0 else str(_("member")))
+        return str(value) + " " + (str(_("members")) if value > 1 else str(_("member")))
 
     class Meta:
         attrs = {
@@ -178,7 +178,7 @@ class BusTeamTable(tables.Table):
     )
 
     def render_count(self, value):
-        return str(value) + " " + (str(_("members")) if value > 0 else str(_("member")))
+        return str(value) + " " + (str(_("members")) if value > 1 else str(_("member")))
 
     count = tables.Column(
         verbose_name=_("Members count"),
diff --git a/apps/wei/views.py b/apps/wei/views.py
index 76a01fae35755a04c19422f758354939af1c22e0..3accb80422c2dcf3e8fe622f00583792f046ff95 100644
--- a/apps/wei/views.py
+++ b/apps/wei/views.py
@@ -177,7 +177,7 @@ class WEIMembershipsView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableVi
         return super().dispatch(request, *args, **kwargs)
 
     def get_queryset(self, **kwargs):
-        qs = super().get_queryset(**kwargs).filter(club=self.club)
+        qs = super().get_queryset(**kwargs).filter(club=self.club).distinct()
 
         pattern = self.request.GET.get("search", "")
 
@@ -214,7 +214,7 @@ class WEIRegistrationsView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTable
         return super().dispatch(request, *args, **kwargs)
 
     def get_queryset(self, **kwargs):
-        qs = super().get_queryset(**kwargs).filter(wei=self.club, membership=None)
+        qs = super().get_queryset(**kwargs).filter(wei=self.club, membership=None).distinct()
 
         pattern = self.request.GET.get("search", "")