diff --git a/smash/web/forms.py b/smash/web/forms.py
index bc046b76344ab40c3a258b611fc1ca59f6128b5d..dfddccbb5b87ccf3ea95901ad295c84d273e62b4 100644
--- a/smash/web/forms.py
+++ b/smash/web/forms.py
@@ -28,6 +28,23 @@ class SubjectAddForm(ModelForm):
         if len(subjects_from_db):
             self.add_error('screening_number', "Screening number already in use")
 
+    def get_new_screening_number(self):
+        result = 1;
+        numbers = Subject.objects.values_list('screening_number')
+        for number_row in numbers:
+            try:
+                id = int(number_row[0])
+                result = max(result, id+1)
+            except:
+                pass
+        return result
+
+
+    def clean_screening_number(self):
+        if self.cleaned_data['screening_number']=="":
+            self.cleaned_data['screening_number'] = self.get_new_screening_number()
+
+        return self.cleaned_data['screening_number'];
 
 class SubjectDetailForm(ModelForm):
     class Meta:
diff --git a/smash/web/views.py b/smash/web/views.py
index 4bcd4617198cdd297f21320a576daf74f2530f78..367fc0a28ea88f82b05000fa7eed2d5188912b19 100644
--- a/smash/web/views.py
+++ b/smash/web/views.py
@@ -120,11 +120,13 @@ def subjects(request):
 
 	return wrap_response(request, 'subjects/index.html', context)
 
-
 def subject_add(request):
 	if request.method == 'POST':
 		form = SubjectAddForm(request.POST, request.FILES)
 		if form.is_valid():
+			screening_number = form.cleaned_data['screening_number']
+			if screening_number == '':
+				screening_number = get_new_screening_number()
 			form.save()
 			return redirect(subjects)
 	else: