diff --git a/plinth/templates/card.html b/plinth/templates/card.html
index 6c810cd69..cbc30c8cb 100644
--- a/plinth/templates/card.html
+++ b/plinth/templates/card.html
@@ -20,7 +20,7 @@
{{ item.name }}
- {% for tag in item.app.info.tags|slice:":3" %}{% trans tag %}{% if not forloop.last %}・{% endif %}{% endfor %}
+ {% for tag in item.tags|slice:":3" %}{% trans tag %}{% if not forloop.last %}・{% endif %}{% endfor %}
diff --git a/plinth/templates/index.html b/plinth/templates/index.html
index 7e79bd47c..67b0c76aa 100644
--- a/plinth/templates/index.html
+++ b/plinth/templates/index.html
@@ -76,9 +76,7 @@
{{ shortcut.name }}
- {% for tag in shortcut.app.info.tags|slice:":3" %}
- {% trans tag %}{% if not forloop.last %}・{% endif %}
- {% endfor %}
+ {% for tag in shortcut.tags|slice:":3" %}{% trans tag %}{% if not forloop.last %}・{% endif %}{% endfor %}
diff --git a/plinth/views.py b/plinth/views.py
index 803262126..46abdefca 100644
--- a/plinth/views.py
+++ b/plinth/views.py
@@ -191,7 +191,7 @@ class AppsIndexView(TemplateView):
A mismatch is when a selected tag is *not* present in the list of
tags for menu item.
"""
- menu_tags = set(menu_item.app.info.tags)
+ menu_tags = set(menu_item.tags)
return [tag not in menu_tags for tag in selected_tags]
def _sort_key(menu_item):