diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1cd4ce23..ff775169 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+## [1.16.4](https://github.com/mkdocstrings/python/releases/tag/1.16.4) - 2025-03-10
+
+[Compare with 1.16.3](https://github.com/mkdocstrings/python/compare/1.16.3...1.16.4)
+
+### Bug Fixes
+
+- Fix de-duplication of summary sections ([dc46ac9](https://github.com/mkdocstrings/python/commit/dc46ac9b4cfc642decd153dceb62e9f45c5c750e) by Timothée Mazzucotelli).
+
## [1.16.3](https://github.com/mkdocstrings/python/releases/tag/1.16.3) - 2025-03-08
[Compare with 1.16.2](https://github.com/mkdocstrings/python/compare/1.16.2...1.16.3)
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja
index 3675eda7..cabda067 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja
@@ -7,7 +7,7 @@
-#}
{% endblock logs %}
-{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "attributes") %}
+{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "attributes") | list %}
{% with section = obj.attributes
|filter_objects(
filters=config.filters,
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja
index 3db63f3b..7527781b 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja
@@ -7,7 +7,7 @@
-#}
{% endblock logs %}
-{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "classes") %}
+{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "classes") | list %}
{% with section = obj.classes
|filter_objects(
filters=config.filters,
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja
index 60369401..cdf75973 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja
@@ -7,7 +7,7 @@
-#}
{% endblock logs %}
-{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "functions") %}
+{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "functions") | list %}
{% with section = obj.functions
|filter_objects(
filters=config.filters,
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja
index dd14ee9f..b9654593 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja
@@ -7,7 +7,7 @@
-#}
{% endblock logs %}
-{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "modules") %}
+{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "modules") | list %}
{% with section = obj.modules
|filter_objects(
filters=config.filters,