diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex
index a98649b63..ef8e0b4c1 100644
--- a/lib/pleroma/notification.ex
+++ b/lib/pleroma/notification.ex
@@ -7,6 +7,7 @@ defmodule Pleroma.Notification do
 
   alias Pleroma.Activity
   alias Pleroma.Notification
+  alias Pleroma.Object
   alias Pleroma.Pagination
   alias Pleroma.Repo
   alias Pleroma.User
@@ -33,7 +34,10 @@ defmodule Pleroma.Notification do
     Notification
     |> where(user_id: ^user.id)
     |> join(:inner, [n], activity in assoc(n, :activity))
-    |> preload(:activity)
+    |> join(:left, [n, a], object in Object,
+      on: fragment("(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)", object.data, a.data)
+    )
+    |> preload([n, a, o], activity: {a, object: o})
   end
 
   def for_user(user, opts \\ %{}) do