diff --git a/opentech/apply/users/forms.py b/opentech/apply/users/forms.py
index b27eab0b8f4091fe4368787ac298499078a473fd..8338010a6bce407dfa03be69e97d03b05f28972e 100644
--- a/opentech/apply/users/forms.py
+++ b/opentech/apply/users/forms.py
@@ -1,5 +1,6 @@
 from django import forms
 from django.contrib.auth import get_user_model
+from django.utils.translation import gettext_lazy as _
 
 from wagtail.users.forms import UserEditForm, UserCreationForm
 
@@ -36,7 +37,10 @@ class ProfileForm(forms.ModelForm):
 
         if not self.instance.has_usable_password():
             # User is registered with oauth - no password change allowed
-            del self.fields['email']
+            email_field = self.fields['email']
+            email_field.disabled = True
+            email_field.required = False
+            email_field.help_text = _('You are registered using OAuth, please contact an admin if you need to change your email address.')
 
     def clean_slack(self):
         slack = self.cleaned_data['slack']
diff --git a/opentech/apply/users/tests/test_forms.py b/opentech/apply/users/tests/test_forms.py
index 06e81fb933f048101100af1a60e7dff680c4f9e8..edb991775afdc6b395f9660b098181322fe9914e 100644
--- a/opentech/apply/users/tests/test_forms.py
+++ b/opentech/apply/users/tests/test_forms.py
@@ -48,10 +48,9 @@ class TestStaffProfileForm(BaseTestProfileForm):
     def setUp(self):
         self.staff = StaffFactory()
 
-    def test_cant_change_password(self):
+    def test_cant_change_email(self):
         new_email = 'me@this.com'
-        form = self.submit_form(self.staff, email=new_email)
-        self.assertFalse('email' in form.fields)
+        self.submit_form(self.staff, email=new_email)
         self.staff.refresh_from_db()
         self.assertNotEqual(new_email, self.staff.email)
 
diff --git a/opentech/apply/users/tests/test_views.py b/opentech/apply/users/tests/test_views.py
index 1943e508315cfd891b11d2095dd1b5e2639c4af0..935dcdc981e7301ad4f28cd84a204fb775c4ee3e 100644
--- a/opentech/apply/users/tests/test_views.py
+++ b/opentech/apply/users/tests/test_views.py
@@ -43,7 +43,3 @@ class TestStaffProfileView(BaseTestProfielView):
     def test_can_set_slack_name(self):
         response = self.client.get(self.url, follow=True)
         self.assertContains(response, 'Slack name')
-
-    def test_can_not_set_email(self):
-        response = self.client.get(self.url, follow=True)
-        self.assertNotContains(response, 'Email')