diff --git a/smash/web/tests/view/test_notifications.py b/smash/web/tests/view/test_notifications.py
index 8bc8200467724641b13de55bc0c6d33f1a914dbd..677ce30bec0e8d5481fcba8972406ec861b06ee9 100644
--- a/smash/web/tests/view/test_notifications.py
+++ b/smash/web/tests/view/test_notifications.py
@@ -1,8 +1,9 @@
 import datetime
+import logging
 
 from django.contrib.auth.models import AnonymousUser
 
-from web.models import Appointment, Location, AppointmentTypeLink, Study
+from web.models import Appointment, Location, AppointmentTypeLink, Study, Visit
 from web.models.constants import GLOBAL_STUDY_ID
 from web.tests import LoggedInTestCase
 from web.tests.functions import create_appointment, create_location, create_worker, create_appointment_type, \
@@ -22,22 +23,43 @@ from web.views.notifications import \
     get_today_midnight_date, \
     get_unfinished_appointments, \
     get_unfinished_appointments_count, \
-    get_unfinished_visits
+    get_unfinished_visits, get_exceeded_visits
+
+logger = logging.getLogger(__name__)
 
 
 class NotificationViewTests(LoggedInTestCase):
     def test_get_exceeded_visit_notifications_count(self):
-        original_notification = get_visits_without_appointments_count(self.user)
+        original_notification = get_exceeded_visit_notifications_count(self.user)
 
         subject = create_study_subject()
-        visit = create_visit(subject)
-        visit.datetime_end = "2011-01-01"
-        visit.save()
-        create_appointment(visit)
+        Visit.objects.create(datetime_begin="2011-01-01",
+                             datetime_end="2011-01-02",
+                             subject=subject)
+
+        # first visit doesn't go to notifications
+        notification = get_exceeded_visit_notifications_count(self.user)
+        self.assertEquals(original_notification.count, notification.count)
+
+        Visit.objects.create(datetime_begin="2012-01-01",
+                             datetime_end="2012-01-02",
+                             subject=subject)
 
         notification = get_exceeded_visit_notifications_count(self.user)
         self.assertEquals(original_notification.count + 1, notification.count)
 
+    def test_get_exceeded_visit_notifications_count_for_first_visit(self):
+        subject = create_study_subject()
+        visit = Visit.objects.create(datetime_begin="2011-01-01",
+                                     datetime_end="2011-01-02",
+                                     subject=subject)
+        appointment = create_appointment(visit)
+        appointment.status = Appointment.APPOINTMENT_STATUS_FINISHED
+        appointment.save()
+        notification = get_exceeded_visit_notifications_count(self.user)
+        logger.debug(get_exceeded_visits(self.user).query)
+        self.assertEquals(1, notification.count)
+
     def test_get_exceeded_visit_notifications_count_2(self):
         original_notification = get_visits_without_appointments_count(self.user)
 
diff --git a/smash/web/views/notifications.py b/smash/web/views/notifications.py
index 0fac2b49f48023ea219af4a000565edea2b2764e..4d251909544bc61cacaade3a0a309e9b4caa39b8 100644
--- a/smash/web/views/notifications.py
+++ b/smash/web/views/notifications.py
@@ -212,7 +212,11 @@ def get_exceeded_visits(user):
     return Visit.objects.filter(datetime_end__lt=get_today_midnight_date(),
                                 is_finished=False,
                                 subject__default_location__in=get_filter_locations(user)
-                                ).order_by('datetime_begin')
+                                ).filter(
+        # by default any visit where visit number is bigger than 1
+        # or in case of first visit - visits that had some successful appointment
+        Q(visit_number__gt=1) | Q(appointment__status=Appointment.APPOINTMENT_STATUS_FINISHED)).order_by(
+        'datetime_begin')
 
 
 def get_missing_redcap_subjects(user, include_ignored=True):