diff --git a/smash/web/forms.py b/smash/web/forms.py
index c2ba00899b0c070b8114a7895b8f3eb6e95a98d0..c4fe054025fc6a62e56b823cc3ca41b192ead232 100644
--- a/smash/web/forms.py
+++ b/smash/web/forms.py
@@ -228,9 +228,12 @@ class VisitAddForm(ModelForm):
         exclude = ['is_finished']
 
     def clean(self):
+        super(VisitAddForm, self).clean()
+        if 'datetime_begin' not in self.cleaned_data or 'datetime_end' not in self.cleaned_data:
+            return
         if self.cleaned_data['datetime_begin'] >= self.cleaned_data['datetime_end']:
             self.add_error('datetime_begin', "Start date must be before end date")
-            self.add_error('datetime_end', "Start date must be before end date")
+            self.add_error('datetime_end', "End date must be after start date")
 
 
 class KitRequestForm(Form):
diff --git a/smash/web/tests/test_VisitAddForm.py b/smash/web/tests/test_VisitAddForm.py
index 6eea4e9ff337af69e7b2943e1566e6ace697e71b..cf3eff33d9f8ced997d061d10f96b52114165435 100644
--- a/smash/web/tests/test_VisitAddForm.py
+++ b/smash/web/tests/test_VisitAddForm.py
@@ -33,3 +33,9 @@ class SubjectAddFormTests(TestCase):
         self.assertFalse(validation_status)
         self.assertTrue("datetime_begin" in form.errors)
         self.assertTrue("datetime_end" in form.errors)
+
+    def test_invalid_no_dates(self):
+        self.sample_data.pop('datetime_begin')
+        form = VisitAddForm(data=self.sample_data)
+        validation_status = form.is_valid()
+        self.assertFalse(validation_status)