Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9203)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9204)
@@ -1255,5 +1255,5 @@
         if error is not None:
             self.flash(error)
-            if 'Would you like' in error:
+            if 'previous session' in error:
                 self.redirect(self.url(self.context) + '/@@addpp')
                 return
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 9203)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 9204)
@@ -1599,4 +1599,16 @@
 
     def test_student_previous_payments(self):
+        configuration = createObject('waeup.SessionConfiguration')
+        configuration.academic_session = 2000
+        configuration.clearance_fee = 3456.0
+        configuration.booking_fee = 123.4
+        self.student['studycourse'].entry_session = 2002
+        self.app['configuration'].addSessionConfiguration(configuration)
+        configuration2 = createObject('waeup.SessionConfiguration')
+        configuration2.academic_session = 2003
+        configuration2.clearance_fee = 3456.0
+        configuration2.booking_fee = 123.4
+        self.student['studycourse'].entry_session = 2002
+        self.app['configuration'].addSessionConfiguration(configuration2)
         # Login
         self.browser.open(self.login_path)
@@ -1621,5 +1633,17 @@
         # Previous session payment form is provided
         self.browser.getControl(name="form.p_category").value = ['schoolfee']
+        self.browser.getControl(name="form.p_session").value = ['2000']
+        self.browser.getControl(name="form.p_level").value = ['300']
+        self.browser.getControl("Create ticket").click()
+        self.assertMatches('...The previous session must not fall below...',
+                           self.browser.contents)
+        self.browser.getControl(name="form.p_category").value = ['schoolfee']
         self.browser.getControl(name="form.p_session").value = ['2004']
+        self.browser.getControl(name="form.p_level").value = ['300']
+        self.browser.getControl("Create ticket").click()
+        self.assertMatches('...This is not a previous session...',
+                           self.browser.contents)
+        self.browser.getControl(name="form.p_category").value = ['schoolfee']
+        self.browser.getControl(name="form.p_session").value = ['2003']
         self.browser.getControl(name="form.p_level").value = ['300']
         self.browser.getControl("Create ticket").click()
@@ -1634,5 +1658,5 @@
 
         # Payment session is properly set
-        self.assertEqual(self.student['payments'][value].p_session, 2004)
+        self.assertEqual(self.student['payments'][value].p_session, 2003)
         self.assertEqual(self.student['payments'][value].p_level, 300)
 
Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 9203)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 9204)
@@ -328,4 +328,9 @@
                 return _('Study course data are incomplete.'), None
             if previous_session:
+                if previous_session < student['studycourse'].entry_session:
+                    return _('The previous session must not fall below '
+                             'your entry session.'), None
+                if previous_session > student['studycourse'].current_session - 1:
+                    return _('This is not a previous session.'), None
                 if previous_level == 100:
                     amount = getattr(certificate, 'school_fee_1', 0.0)
