diff --git a/packages/component-invite/src/routes/deleteInvitation.js b/packages/component-invite/src/routes/deleteInvitation.js
index 59dd9905e99046314d541384a2d9b2a37f29a406..b85fa6d9e0605d4ec7cf606368524908d5f9e465 100644
--- a/packages/component-invite/src/routes/deleteInvitation.js
+++ b/packages/component-invite/src/routes/deleteInvitation.js
@@ -43,7 +43,7 @@ module.exports = models => async (req, res) => {
     }
     await inviteHelper.revokeInvitation(user, collectionId, role)
     await teamHelper.removeTeamMember(team.id, userId, models.Team)
-    user.teams = user.teams.filter(userTeam => team.id !== userTeam.id)
+    user.teams = user.teams.filter(userTeamId => team.id !== userTeamId)
     await user.save()
     await collectionHelper.removeAssignedPeople(collection, user.email)
     try {
diff --git a/packages/component-invite/src/routes/postHandleInvitation.js b/packages/component-invite/src/routes/postHandleInvitation.js
index 5be9650861cc50aed18fffd6ed959da624936792..6d8951e1cf6f4f6b2589c03e56a005623898aeed 100644
--- a/packages/component-invite/src/routes/postHandleInvitation.js
+++ b/packages/component-invite/src/routes/postHandleInvitation.js
@@ -2,6 +2,7 @@ const logger = require('@pubsweet/logger')
 const helpers = require('../helpers/helpers')
 const teamHelper = require('../helpers/Team')
 const mailService = require('pubsweet-component-mail-service')
+const collectionHelper = require('../helpers/Collection')
 
 module.exports = models => async (req, res) => {
   const { type, accept } = req.body
@@ -63,6 +64,10 @@ module.exports = models => async (req, res) => {
         user.id,
         models.Team,
       )
+      user.teams = user.teams.filter(
+        userTeamId => matchingInvitation.teamId !== userTeamId,
+      )
+      await collectionHelper.removeAssignedPeople(collection, user.email)
       const { reason } = req.body
       if (reason !== undefined) {
         matchingInvitation.reason = reason