diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 7deda4db421161828a0ec877c991c84bd4b18c11..2fd8f9c940aa59a96ba5c5c49ddf8521e8ac40b5 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -13,6 +13,7 @@ Changed
 ~~~~~~~
 
 * Use new icon set inside of models and templates
+* Extra marks and excused absences were counted multiple times in some class register views.
 
 `2.1.1`_ - 2022-09-01
 ---------------------
diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py
index b53f87f997b9f4b62336ef594fcc2676cc00a983..2beb3c113c13556d99f6541a6bcb34c9cd0baaed 100644
--- a/aleksis/apps/alsijil/model_extensions.py
+++ b/aleksis/apps/alsijil/model_extensions.py
@@ -471,6 +471,7 @@ def generate_person_list_with_class_register_statistics(
                 extra_mark.count_label: Count(
                     "filtered_personal_notes",
                     filter=Q(filtered_personal_notes__extra_marks=extra_mark),
+                    distinct=True,
                 )
             }
         )
@@ -484,6 +485,7 @@ def generate_person_list_with_class_register_statistics(
                         filtered_personal_notes__absent=True,
                         filtered_personal_notes__excuse_type=excuse_type,
                     ),
+                    distinct=True,
                 )
             }
         )