diff --git a/native/chat/message-list-container.react.js b/native/chat/message-list-container.react.js
--- a/native/chat/message-list-container.react.js
+++ b/native/chat/message-list-container.react.js
@@ -388,7 +388,7 @@
         params: {
           threadInfo,
         },
-        key: `PinnedMessages${threadInfo.id}`,
+        key: `MessageResultsScreen${threadInfo.id}`,
       });
     }, [props.navigation, threadInfo]);
 
diff --git a/native/chat/text-message.react.js b/native/chat/text-message.react.js
--- a/native/chat/text-message.react.js
+++ b/native/chat/text-message.react.js
@@ -29,8 +29,12 @@
   OverlayContext,
   type OverlayContextType,
 } from '../navigation/overlay-context.js';
+import {
+  MessageResultsScreenRouteName,
+  MessageSearchRouteName,
+  TextMessageTooltipModalRouteName,
+} from '../navigation/route-names.js';
 import type { NavigationRoute } from '../navigation/route-names.js';
-import { TextMessageTooltipModalRouteName } from '../navigation/route-names.js';
 import { fixedTooltipHeight } from '../tooltip/tooltip.react.js';
 import type { ChatTextMessageInfoItemWithHeight } from '../types/chat-types.js';
 import type { VerticalBounds } from '../types/layout-types.js';
@@ -269,9 +273,16 @@
     const editMessageID = messageEditingContext?.editState.editedMessage?.id;
     const isThisMessageEdited = editMessageID === props.item.messageInfo.id;
 
+    const screenName = props.route.key;
+    const threadCreationTime = props.item.threadInfo.creationTime;
+    const messageCreationTime = props.item.messageInfo.time;
+
     const canEditMessage =
       useCanEditMessage(props.item.threadInfo, props.item.messageInfo) &&
-      !isThisMessageEdited;
+      !isThisMessageEdited &&
+      !screenName.startsWith(MessageSearchRouteName) &&
+      !screenName.startsWith(MessageResultsScreenRouteName) &&
+      messageCreationTime > threadCreationTime;
 
     const canTogglePins = threadHasPermission(
       props.item.threadInfo,