diff --git a/app/assets/javascripts/discourse/widgets/notification-item.js.es6 b/app/assets/javascripts/discourse/widgets/notification-item.js.es6
index 187a090ce0f..55ce637d500 100644
--- a/app/assets/javascripts/discourse/widgets/notification-item.js.es6
+++ b/app/assets/javascripts/discourse/widgets/notification-item.js.es6
@@ -59,6 +59,10 @@ createWidget('notification-item', {
     const badgeName = data.badge_name;
     if (badgeName) { return escapeExpression(badgeName); }
 
+    if (this.attrs.fancy_title) {
+      return this.attrs.fancy_title;
+    }
+
     const title = data.topic_title;
     return Ember.isEmpty(title) ? "" : escapeExpression(title);
   },
diff --git a/app/serializers/notification_serializer.rb b/app/serializers/notification_serializer.rb
index 28d92f19c5c..960b65f91e1 100644
--- a/app/serializers/notification_serializer.rb
+++ b/app/serializers/notification_serializer.rb
@@ -6,6 +6,7 @@ class NotificationSerializer < ApplicationSerializer
              :created_at,
              :post_number,
              :topic_id,
+             :fancy_title,
              :slug,
              :data,
              :is_warning
@@ -18,6 +19,14 @@ class NotificationSerializer < ApplicationSerializer
     object.topic.present? && object.topic.subtype == TopicSubtype.moderator_warning
   end
 
+  def include_fancy_title?
+    object.topic&.fancy_title
+  end
+
+  def fancy_title
+    object.topic.fancy_title
+  end
+
   def include_is_warning?
     is_warning
   end