diff --git a/lib/shared/dm-ops/change-thread-subscription.js b/lib/shared/dm-ops/change-thread-subscription.js
--- a/lib/shared/dm-ops/change-thread-subscription.js
+++ b/lib/shared/dm-ops/change-thread-subscription.js
@@ -23,6 +23,13 @@
       const threadInfo = utilities.threadInfos[threadID];
       invariant(threadInfo.thick, 'Thread should be thick');
 
+      if (threadInfo.timestamps.members[creatorID].subscription > time) {
+        return {
+          updateInfos: [],
+          rawMessageInfos: [],
+        };
+      }
+
       const creatorMemberInfo = threadInfo.members.find(
         member => member.id === creatorID,
       );
@@ -39,6 +46,16 @@
       const threadInfoUpdate = {
         ...threadInfo,
         members: membersUpdate,
+        timestamps: {
+          ...threadInfo.timestamps,
+          members: {
+            ...threadInfo.timestamps.members,
+            [creatorID]: {
+              ...threadInfo.timestamps.members[creatorID],
+              subscription: time,
+            },
+          },
+        },
       };
       const updateInfos: Array<ClientUpdateInfo> = [
         {