Index: src/services/ActivityPubService.js
===================================================================
--- src/services/ActivityPubService.js	(revision c4b24b3124b1464cef50b076ef0dee1b96d5f00c)
+++ src/services/ActivityPubService.js	(revision 02c623148e6e0650b89c365ef649c21ee484b021)
@@ -3473,4 +3473,17 @@
       return out.length ? out.slice(0, 8) : undefined;
     })(),
+    // FEP-9098: de custom emoji van het antwoord (":shortcode:" -> plaatje).
+    // Zonder deze tags rendert een reply van een Mastodon-account zijn emoji
+    // als kale tekst (Barts punt, 8-8). Alleen naam + geschoond icoon-adres
+    // gaan door; de rest van de vreemde tag-array blijft achter.
+    tag: (() => {
+      const j = extractEmojiTags(o.tag);
+      if (!j) return undefined;
+      const out = JSON.parse(j)
+        .map((t) => ({ type: 'Emoji', name: t.name, icon: { type: 'Image', url: safeUrl(t.icon && (t.icon.url || (Array.isArray(t.icon) && t.icon[0] && t.icon[0].url))) } }))
+        .filter((t) => t.icon.url)
+        .slice(0, 30);
+      return out.length ? out : undefined;
+    })(),
     'shaer:author': actorInfo(authors.get(actorUri), actorUri),
   })).sort((a, b) => String(a.published || '').localeCompare(String(b.published || '')));
