diff --git a/src/remote/activitypub/misc/get-note-html.ts b/src/remote/activitypub/misc/get-note-html.ts
index 8df440930b..f92e91c34e 100644
--- a/src/remote/activitypub/misc/get-note-html.ts
+++ b/src/remote/activitypub/misc/get-note-html.ts
@@ -4,9 +4,8 @@ import parse from '../../../mfm/parse';
 import config from '../../../config';
 
 export default function(note: INote) {
-	if (note.text == null) return null;
-
 	let html = toHtml(parse(note.text), note.mentionedRemoteUsers);
+	if (html == null) html = '';
 
 	if (note.poll != null) {
 		const url = `${config.url}/notes/${note._id}`;
diff --git a/src/server/activitypub/outbox.ts b/src/server/activitypub/outbox.ts
index 9a4c881774..1d062f61a1 100644
--- a/src/server/activitypub/outbox.ts
+++ b/src/server/activitypub/outbox.ts
@@ -105,7 +105,7 @@ export default async (ctx: Router.IRouterContext) => {
  * @param note Note
  */
 export async function packActivity(note: INote): Promise<object> {
-	if (note.renoteId && note.text == null) {
+	if (note.renoteId && note.text == null && note.poll == null && (note.fileIds == null || note.fileIds.length == 0)) {
 		const renote = await Note.findOne(note.renoteId);
 		return renderAnnounce(renote.uri ? renote.uri : `${config.url}/notes/${renote._id}`, note);
 	}
diff --git a/src/services/note/create.ts b/src/services/note/create.ts
index c08836c94b..ceb2ab2e2d 100644
--- a/src/services/note/create.ts
+++ b/src/services/note/create.ts
@@ -239,7 +239,7 @@ export default async (user: IUser, data: Option, silent = false) => new Promise<
 });
 
 async function renderActivity(data: Option, note: INote) {
-	const content = data.renote && data.text == null
+	const content = data.renote && data.text == null && data.poll == null && (data.files == null || data.files.length == 0)
 		? renderAnnounce(data.renote.uri ? data.renote.uri : `${config.url}/notes/${data.renote._id}`, note)
 		: renderCreate(await renderNote(note, false), note);