diff --git a/apps/permission/backends.py b/apps/permission/backends.py
index 49e1e87121337654052fb12948cc550485862e0e..8fa47f376b280c99593ac0cdca625233a3aa2bd7 100644
--- a/apps/permission/backends.py
+++ b/apps/permission/backends.py
@@ -36,7 +36,7 @@ class PermissionBackend(ModelBackend):
             # Unauthenticated users have no permissions
             return Permission.objects.none()
 
-        return Permission.objects.annotate(
+        qs = Permission.objects.annotate(
             club=F("rolepermissions__role__membership__club"),
             membership=F("rolepermissions__role__membership"),
         ).filter(
@@ -50,7 +50,13 @@ class PermissionBackend(ModelBackend):
             & Q(rolepermissions__role__membership__user=user)
             & Q(type=t)
             & Q(mask__rank__lte=get_current_session().get("permission_mask", 0))
-        ).distinct()
+        )
+
+        try:
+            qs = qs.distinct('pk', 'club')
+        except:  # SQLite doesn't support distinct fields.
+            qs = qs.distinct()
+        return qs
 
     @staticmethod
     def permissions(user, model, type):