diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 2fd8f9c940aa59a96ba5c5c49ddf8521e8ac40b5..282575f36d245ab7835f6c2e168528d401d76044 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -13,7 +13,12 @@ Changed
 ~~~~~~~
 
 * Use new icon set inside of models and templates
+
+Fixed
+~~~~~
+
 * Extra marks and excused absences were counted multiple times in some class register views.
+* Substitution teachers couldn't see any persons in the person list of a substituted lesson.
 
 `2.1.1`_ - 2022-09-01
 ---------------------
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 68833a4d5dd8814a58c3bf6cae6b1c2e2c7af701..7b5ebec01cb9e1cff9677bb74bbfdf1ee99677e4 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -236,15 +236,14 @@ def register_object(
         if not request.user.has_perm(
             "alsijil.view_register_object_personalnote_rule", register_object
         ):
-            persons = Person.objects.filter(pk=request.user.person.pk)
+            persons = Person.objects.filter(
+                Q(pk=request.user.person.pk)
+                | Q(person__member_of__in=request.user.person.owner_of.all())
+            ).distinct()
         else:
             persons = Person.objects.all()
 
-        persons_qs = (
-            register_object.get_personal_notes(persons, wanted_week)
-            .filter(person__member_of__in=request.user.person.owner_of.all())
-            .distinct()
-        )
+        persons_qs = register_object.get_personal_notes(persons, wanted_week).distinct()
 
         # Annotate group roles
         if show_group_roles:
@@ -798,16 +797,12 @@ def my_students(request: HttpRequest) -> HttpResponse:
 
     new_groups = []
     for group in relevant_groups:
-        persons = (
-            group.generate_person_list_with_class_register_statistics(
-                group.members.prefetch_related(
-                    "primary_group__owners",
-                    Prefetch("member_of", queryset=relevant_groups, to_attr="member_of_prefetched"),
-                )
+        persons = group.generate_person_list_with_class_register_statistics(
+            group.members.prefetch_related(
+                "primary_group__owners",
+                Prefetch("member_of", queryset=relevant_groups, to_attr="member_of_prefetched"),
             )
-            .filter(member_of__in=request.user.person.owner_of.all())
-            .distinct()
-        )
+        ).distinct()
         persons_for_group = []
         for person in persons:
             person.set_object_permission_checker(checker)