diff --git a/src/mfm/language.ts b/src/mfm/language.ts
index 7da1af7cff..bfa22e8c3b 100644
--- a/src/mfm/language.ts
+++ b/src/mfm/language.ts
@@ -104,7 +104,7 @@ export const mfmLanguage = P.createLanguage({
 
 		return P.alt(xml, underscore).map(x => createTree('italic', r.inline.atLeast(1).tryParse(x), {}));
 	},
-	strike: r => P.regexp(/~~(.+?)~~/, 1).map(x => createTree('strike', r.inline.atLeast(1).tryParse(x), {})),
+	strike: r => P.regexp(/~~([^\n~]+?)~~/, 1).map(x => createTree('strike', r.inline.atLeast(1).tryParse(x), {})),
 	motion: r => {
 		const paren = P.regexp(/\(\(\(([\s\S]+?)\)\)\)/, 1);
 		const xml = P.regexp(/<motion>(.+?)<\/motion>/, 1);
diff --git a/test/mfm.ts b/test/mfm.ts
index cdd07788ba..c772a62dcb 100644
--- a/test/mfm.ts
+++ b/test/mfm.ts
@@ -1116,6 +1116,14 @@ describe('MFM', () => {
 					], {}),
 				]);
 			});
+
+			// https://misskey.io/notes/7u1kv5dmia
+			it('ignore internal tilde', () => {
+				const tokens = parse('~~~~~');
+				assert.deepStrictEqual(tokens, [
+					text('~~~~~')
+				]);
+			});
 		});
 
 		describe('italic', () => {