diff --git a/opentech/apply/funds/forms.py b/opentech/apply/funds/forms.py
index 556c2e9a9bf9e538caf428bb64fa35cd078f90c4..75ee3336a6f4837501b5e2b75a001e4cd7d00f3e 100644
--- a/opentech/apply/funds/forms.py
+++ b/opentech/apply/funds/forms.py
@@ -68,7 +68,10 @@ class UpdateReviewersForm(forms.ModelForm):
         self.request = kwargs.pop('request', None)
         super().__init__(*args, **kwargs)
 
+        # All submitted reviews by non-role reviewers
         self.submitted_reviewers = User.objects.filter(id__in=self.instance.reviews.values('author'))
+        self.submitted_reviewers = self.submitted_reviewers.exclude(
+            id__in=AssignedReviewers.objects.role_reviewers_by_submission(self.instance).values('reviewer'))
 
         if self.can_alter_external_reviewers(self.instance, self.user):
             reviewers = self.instance.reviewers.all()
diff --git a/opentech/apply/funds/models/submissions.py b/opentech/apply/funds/models/submissions.py
index 96fcb6e25a3fb763bf311651406e968bdaf9fe34..55c7a0030a2801ee53fa4d51ad2ddb634b5309af 100644
--- a/opentech/apply/funds/models/submissions.py
+++ b/opentech/apply/funds/models/submissions.py
@@ -677,6 +677,11 @@ class ApplicationRevision(AccessFormData, models.Model):
         })
 
 
+class AssignedReviewersQuerySet(models.QuerySet):
+    def role_reviewers_by_submission(self, submission):
+        return self.filter(role__isnull=False, submission=submission)
+
+
 class AssignedReviewers(models.Model):
     reviewer = models.ForeignKey(
         settings.AUTH_USER_MODEL,
@@ -695,6 +700,8 @@ class AssignedReviewers(models.Model):
         null=True,
     )
 
+    objects = AssignedReviewersQuerySet.as_manager()
+
     class Meta:
         unique_together = ('submission', 'role')