diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js
index 049383e6bd1305d61ca5534a9810c9b06d13a224..71d31a00307d2c1f148a0d0aa23fb923aa2ea744 100644
--- a/packages/component-faraday-selectors/src/index.js
+++ b/packages/component-faraday-selectors/src/index.js
@@ -1,16 +1,5 @@
 import { selectCurrentUser } from 'xpub-selectors'
-import {
-  get,
-  has,
-  last,
-  chain,
-  some,
-  isEmpty,
-  // eslint-disable-next-line no-unused-vars
-  flatten,
-  slice,
-  find,
-} from 'lodash'
+import { get, has, last, chain, some, isEmpty, slice, find } from 'lodash'
 
 export const isHEToManuscript = (state, collectionId = '') => {
   const { id = '', isAccepted = false } = chain(state)
@@ -59,7 +48,11 @@ export const canInviteReviewers = (state, collection = {}) => {
   return isAccepted && (userId === heId || isAdminEiC)
 }
 
-const canViewContextualBoxOnOldVersionStatuses = ['submitted', 'heAssigned']
+const canViewContextualBoxOnOldVersionStatuses = [
+  'submitted',
+  'heInvited',
+  'heAssigned',
+]
 const canViewContextualBoxOnOldVersion = (collection, fragmentId) => {
   const fragments = get(collection, 'fragments', [])
   const oldVersions = slice(fragments, 0, fragments.length - 1)
@@ -216,8 +209,12 @@ export const canViewResponseFromAuthor = (state, collection, fragmentId) => {
     state,
     fragmentId,
   )
+  const canHEViewResponseFromAuthor =
+    currentUserIs(state, 'isHE') &&
+    get(collection, 'status', 'draft') === 'heInvited'
   return (
     !isEmpty(authorResponseToRevisonRequest) &&
+    !canHEViewResponseFromAuthor &&
     !cannotViewResponseFromAuthorStatuses.includes(
       get(collection, 'status', 'draft'),
     )
diff --git a/packages/component-faraday-ui/src/PersonInvitation.js b/packages/component-faraday-ui/src/PersonInvitation.js
index 8c5e7526da145dc84aefe6ac6bf6d76336d96d3e..36bc6a16bfccbc66a7649d8e10fef57117fd1bb4 100644
--- a/packages/component-faraday-ui/src/PersonInvitation.js
+++ b/packages/component-faraday-ui/src/PersonInvitation.js
@@ -59,7 +59,7 @@ const PersonInvitation = ({
         </Fragment>
       )}
     {hasAnswer &&
-      isLatestVersion(
+      isLatestVersion && (
         <Fragment>
           <OpenModal
             confirmText="Revoke"
@@ -79,7 +79,7 @@ const PersonInvitation = ({
               />
             )}
           </OpenModal>
-        </Fragment>,
+        </Fragment>
       )}
   </Root>
 )
diff --git a/packages/component-invite/src/routes/collectionsInvitations/delete.js b/packages/component-invite/src/routes/collectionsInvitations/delete.js
index da307e51846f16e8b3c3fbfc8b64d73bd0b46e84..4f50a44d49641e2b540b943cf4c4d530ec44fdd3 100644
--- a/packages/component-invite/src/routes/collectionsInvitations/delete.js
+++ b/packages/component-invite/src/routes/collectionsInvitations/delete.js
@@ -8,7 +8,7 @@ const {
   deleteFilesS3,
 } = require('pubsweet-component-mts-package/src/PackageManager')
 
-const { last, get } = require('lodash')
+const { last, get, chain, difference } = require('lodash')
 
 const s3Config = get(config, 'pubsweet-component-aws-s3', {})
 
@@ -83,18 +83,24 @@ module.exports = models => async (req, res) => {
             })
         })
       })
-    const responseToReviewersFileId = get(
-      fragment,
-      'responseToReviewers.file.id',
-    )
-    if (responseToReviewersFileId) fileKeys.push(responseToReviewersFileId)
+
+    const fragmentFilesIds = chain(get(fragment, 'files', []))
+      .flatMap(item => item)
+      .map(item => item.id)
+      .value()
+    const revisionFilesIds = chain(get(fragment, 'revision.files', []))
+      .flatMap(item => item)
+      .map(item => item.id)
+      .value()
+    const revisionFileIds = difference(revisionFilesIds, fragmentFilesIds)
+    fileKeys.concat(revisionFileIds)
+
     if (fileKeys.length > 1) {
       await deleteFilesS3({ fileKeys, s3Config })
     }
 
     fragment.invitations = []
     fragment.recommendations = []
-    fragment.responseToReviewers && delete fragment.responseToReviewers
     fragment.revision && delete fragment.revision
     fragment.save()