diff --git a/gajim/gtk/avatar.py b/gajim/gtk/avatar.py
index 2deb055962cd5add39ea4b108cf8f193b0916f96..4883adb71fdf5ed3ede4d1c45de069c7ac741d14 100644
--- a/gajim/gtk/avatar.py
+++ b/gajim/gtk/avatar.py
@@ -38,6 +38,8 @@
 from gajim.common.const import StyleAttr
 
 from .const import DEFAULT_WORKSPACE_COLOR
+from .emoji_data import is_emoji
+from .emoji_data import get_emoji_font
 from .util import load_icon_surface
 from .util import load_pixbuf
 from .util import text_to_color
@@ -79,7 +81,11 @@ def generate_avatar(letters: str,
     context.fill()
 
     # Draw letters
-    context.select_font_face('sans-serif',
+    if is_emoji(letters):
+        font_face = get_emoji_font()
+    else:
+        font_face = 'sans-serif'
+    context.select_font_face(font_face,
                              cairo.FontSlant.NORMAL,
                              cairo.FontWeight.NORMAL)
     context.set_font_size(font_size)
diff --git a/gajim/gtk/emoji_data.py b/gajim/gtk/emoji_data.py
index 171e9c028b8d1e89cd7108038f62f3b0bfbdec70..e4c65741ff0a94d4178f6c977a1d49c67f531b30 100644
--- a/gajim/gtk/emoji_data.py
+++ b/gajim/gtk/emoji_data.py
@@ -17,6 +17,7 @@
 from typing import Optional
 
 import re
+import sys
 import weakref
 from enum import IntEnum
 from collections import OrderedDict
@@ -61,6 +62,12 @@ def get_emoji_pixbuf(codepoints: str) -> Optional[GdkPixbuf.Pixbuf]:
     return pixbuf
 
 
+def get_emoji_font() -> str:
+    if sys.platform == 'win32':
+        return 'Segoe UI Emoji'
+    return 'Noto Color Emoji'
+
+
 class EmojiData(OrderedDict):
     def __getitem__(self, key):
         try: