diff --git a/smash/web/forms/study_subject_forms.py b/smash/web/forms/study_subject_forms.py
index 8fab21fc5fce5baeaf417452fadd26417b4c016e..aacd999186c4d76bd08a7545369d488530456558 100644
--- a/smash/web/forms/study_subject_forms.py
+++ b/smash/web/forms/study_subject_forms.py
@@ -92,13 +92,16 @@ class StudySubjectDetailForm(ModelForm):
         super(StudySubjectDetailForm, self).__init__(*args, **kwargs)
         instance = getattr(self, 'instance', None)
 
+        self.study = get_study_from_study_subject_instance(instance)
+
         prepare_study_subject_fields(fields=self.fields, study=self.study)
 
+
 def get_study_from_study_subject_instance(study_subject):
-    if instance and instance.study_id:
-        self.study = Study.objects.filter(id=instance.study_id)[0]
+    if study_subject and study_subject.study_id:
+        return Study.objects.filter(id=study_subject.study_id)[0]
     else:
-        self.study = Study(columns=StudyColumns())
+        return Study(columns=StudyColumns())
 
 
 class StudySubjectEditForm(ModelForm):
@@ -115,10 +118,7 @@ class StudySubjectEditForm(ModelForm):
         instance = getattr(self, 'instance', None)
         if instance and instance.id:
             self.fields['screening_number'].widget.attrs['readonly'] = True
-        if instance and instance.study_id:
-            self.study = Study.objects.filter(id=instance.study_id)[0]
-        else:
-            self.study = Study(columns=StudyColumns())
+        self.study = get_study_from_study_subject_instance(instance)
 
         if was_resigned:
             self.fields['resigned'].disabled = True