diff --git a/lib/pleroma/web/ostatus/ostatus.ex b/lib/pleroma/web/ostatus/ostatus.ex
index 1ac38bd8a..05bc4058c 100644
--- a/lib/pleroma/web/ostatus/ostatus.ex
+++ b/lib/pleroma/web/ostatus/ostatus.ex
@@ -235,8 +235,12 @@ defmodule Pleroma.Web.OStatus do
         info: info,
         avatar: info["avatar"]
       }
-      cs = User.remote_user_creation(data)
-      Repo.insert(cs)
+      with %User{} = user <- User.get_by_ap_id(data.ap_id) do
+        {:ok, user}
+      else _e ->
+        cs = User.remote_user_creation(data)
+        Repo.insert(cs)
+      end
     end
   end