diff --git a/Telegram/SourceFiles/chat_helpers/emoji_keywords.cpp b/Telegram/SourceFiles/chat_helpers/emoji_keywords.cpp
index 92653bcac..a1d6bc3a0 100644
--- a/Telegram/SourceFiles/chat_helpers/emoji_keywords.cpp
+++ b/Telegram/SourceFiles/chat_helpers/emoji_keywords.cpp
@@ -168,11 +168,20 @@ void AppendFoundEmoji(
 		std::vector<Result> &result,
 		const QString &label,
 		const std::vector<LangPackEmoji> &list) {
+	// It is important that the 'result' won't relocate while inserting.
+	result.reserve(result.size() + list.size());
+	const auto alreadyBegin = result.data();
+	const auto alreadyEnd = alreadyBegin + result.size();
+
 	auto &&add = ranges::view::all(
 		list
 	) | ranges::view::filter([&](const LangPackEmoji &entry) {
-		const auto i = ranges::find(result, entry.emoji, &Result::emoji);
-		return (i == end(result));
+		const auto i = ranges::find(
+			alreadyBegin,
+			alreadyEnd,
+			entry.emoji,
+			&Result::emoji);
+		return (i == alreadyEnd);
 	}) | ranges::view::transform([&](const LangPackEmoji &entry) {
 		return Result{ entry.emoji, label, entry.text };
 	});