I have had to change line 15 in forms.py to be a form level clean not field level (ie. def clean not def clean_email) it seems that self.cleaned_data['password'] is out of scope if doing clean_email.
This seems a pretty fundamental issue - so I am wondering if my understanding/usage is incorrect?