diff --git a/lib/shared/thread-utils.js b/lib/shared/thread-utils.js
--- a/lib/shared/thread-utils.js
+++ b/lib/shared/thread-utils.js
@@ -990,6 +990,15 @@
   return threadInfo;
 }
 
+function filterOutDisabledPermissions(permissionsBitmask: string): string {
+  const decodedPermissions: ThreadPermissionsInfo =
+    threadPermissionsFromBitmaskHex(permissionsBitmask);
+  const updatedPermissions = { ...decodedPermissions, ...disabledPermissions };
+  const encodedUpdatedPermissions: string =
+    permissionsToBitmaskHex(updatedPermissions);
+  return encodedUpdatedPermissions;
+}
+
 function getCurrentUser(
   threadInfo: RawThreadInfo | ThreadInfo,
   viewerID: ?string,
@@ -998,17 +1007,11 @@
   if (!threadFrozenDueToBlock(threadInfo, viewerID, userInfos)) {
     return threadInfo.currentUser;
   }
-  const decodedPermissions = threadPermissionsFromBitmaskHex(
-    threadInfo.currentUser.permissions,
-  );
-  const updatedPermissions = {
-    ...decodedPermissions,
-    ...disabledPermissions,
-  };
-  const encodedUpdatedPermissions = permissionsToBitmaskHex(updatedPermissions);
   return {
     ...threadInfo.currentUser,
-    permissions: encodedUpdatedPermissions,
+    permissions: filterOutDisabledPermissions(
+      threadInfo.currentUser.permissions,
+    ),
   };
 }
 
@@ -1871,6 +1874,7 @@
   createPendingSidebar,
   pendingThreadType,
   createRealThreadFromPendingThread,
+  filterOutDisabledPermissions,
   getCurrentUser,
   threadFrozenDueToBlock,
   threadFrozenDueToViewerBlock,