diff --git a/smash/web/forms.py b/smash/web/forms.py
index 9883651293dc811f1b30b71eb32c2c99f5fa7fa5..bfb50d12544b0ae13b095da756c682855cf1041d 100644
--- a/smash/web/forms.py
+++ b/smash/web/forms.py
@@ -14,8 +14,9 @@ def validate_subject_nd_number(self):
     subject = self.cleaned_data
     if subject['nd_number']!="":
         subjects_from_db = Subject.objects.filter(nd_number=subject['nd_number'])
-        if len(subjects_from_db)>0:
-            self.add_error('nd_number', "ND number already in use")
+        if (len(subjects_from_db)>0):
+            if (subjects_from_db[0].screening_number!= subject['screening_number']):
+                self.add_error('nd_number', "ND number already in use")
 
 
 class SubjectAddForm(ModelForm):
@@ -64,6 +65,7 @@ class SubjectDetailForm(ModelForm):
 
 class SubjectEditForm(ModelForm):
     date_born = forms.DateField(label='Date of birth',
+        required = False,
         widget=forms.SelectDateWidget(years=YEAR_CHOICES)
     )
 
diff --git a/smash/web/tests/test_SubjectEditForm.py b/smash/web/tests/test_SubjectEditForm.py
new file mode 100644
index 0000000000000000000000000000000000000000..604c3a0c6b10bceb71c135af9114cf0fe68a406f
--- /dev/null
+++ b/smash/web/tests/test_SubjectEditForm.py
@@ -0,0 +1,44 @@
+from django.test import TestCase
+from web.forms import SubjectAddForm
+from web.forms import SubjectEditForm
+from web.models import Subject
+
+
+class SubjectEditFormTests(TestCase):
+    def setUp(self):
+        self.sample_data = {'first_name': 'name',
+            'last_name': 'name',
+            'status' : Subject.STATUS_CHOICES_NOT_CONTACTED,
+            'sex' : Subject.SEX_CHOICES_MALE,
+            'country' : 'Luxembourg',
+            'screening_number' : '123',
+            'nd_number' : 'nd_123'
+        }
+
+    def tearDown(self):
+        Subject.objects.all().delete()
+
+    def test_validation(self):
+        add_form = SubjectAddForm(data=self.sample_data)
+        subject = add_form.save()
+        self.sample_data['id'] = subject.id
+
+        edit_form = SubjectEditForm(self.sample_data)
+        save_status = edit_form.is_valid()
+        self.assertTrue(save_status)
+
+    def test_invalid_nd_number_edit(self):
+        add_form = SubjectAddForm(data=self.sample_data)
+        add_form.save()
+
+        self.sample_data['nd_number'] = "nd_124"
+        self.sample_data['screening_number'] = "124"
+        add_form = SubjectAddForm(data=self.sample_data)
+        subject = add_form.save()
+
+        self.sample_data['id'] = subject.id
+        self.sample_data['nd_number'] = "nd_123"
+        edit_form = SubjectEditForm(self.sample_data)
+
+        save_status = edit_form.is_valid()
+        self.assertFalse(save_status)