Index: main/waeup.aaue/trunk/src/waeup/aaue/students/studylevel.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/studylevel.py	(revision 15165)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/studylevel.py	(revision 15178)
@@ -139,6 +139,7 @@
 
         restitution_paid = True
-        if self.student.entry_session < 2016 \
-            and self.student.current_mode in ('ug_ft', 'dp_ft'):
+        if self.student.current_session == 2016 \
+            and self.student.current_mode in ('ug_ft', 'dp_ft') \
+            and not self.student.is_fresh:
             restitution_paid = False
             for ticket in self.student['payments'].values():
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py	(revision 15165)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_browser.py	(revision 15178)
@@ -617,5 +617,4 @@
 
     def test_late_registration(self):
-        self.app['configuration']['2004'].restitution_fee = 9999.0
         delta = timedelta(days=10)
         self.app['configuration'][
@@ -625,4 +624,5 @@
         # returning students.
         self.student['studycourse'].entry_session = 2003
+        self.student['studycourse'].current_session = 2016
         # Login
         self.browser.open(self.login_path)
@@ -631,4 +631,10 @@
         self.browser.getControl("Login").click()
         # Make restitution fee payment
+        # Ivie: The restitution was only for returning students of 2016/2017.
+        # Hence, it is only valid for 2016 payment session returning students.
+        configuration = createObject('waeup.SessionConfiguration')
+        configuration.academic_session = 2016
+        self.app['configuration'].addSessionConfiguration(configuration)
+        self.app['configuration']['2016'].restitution_fee = 9999.0
         self.browser.open(self.payments_path + '/addop')
         self.browser.getControl(name="form.p_category").value = ['restitution']
@@ -636,4 +642,5 @@
         self.student['payments'].values()[0].approveStudentPayment()
         # Make late registration fee fee payment
+        self.student['studycourse'].current_session = 2004
         self.browser.open(self.payments_path + '/addop')
         self.browser.getControl(name="form.p_category").value = ['late_registration']
@@ -1011,5 +1018,5 @@
         IWorkflowState(self.student).setState('school fee paid')
         self.student['studycourse'].entry_session = 2004
-        self.student['studycourse'].current_session = 2004
+        self.student['studycourse'].current_session = 2016
         self.browser.open(self.login_path)
         self.browser.getControl(name="form.login").value = self.student_id
@@ -1031,5 +1038,8 @@
         self.assertTrue('Please pay restitution fee first'
             in self.browser.contents)
-        self.app['configuration']['2004'].restitution_fee = 9999.0
+        configuration = createObject('waeup.SessionConfiguration')
+        configuration.academic_session = 2016
+        self.app['configuration'].addSessionConfiguration(configuration)
+        self.app['configuration']['2016'].restitution_fee = 9999.0
         self.browser.open(self.payments_path + '/addop')
         self.browser.getControl(name="form.p_category").value = ['restitution']
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_utils.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_utils.py	(revision 15165)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/tests/test_utils.py	(revision 15178)
@@ -149,12 +149,15 @@
         self.assertEqual(error, 'Restitution fee payment not required.')
         self.student['studycourse'].certificate.study_mode = 'ug_ft'
-        self.app['configuration']['2004'].restitution_fee = 1111.0
+        configuration = createObject('waeup.SessionConfiguration')
+        self.app['configuration']['2016'].restitution_fee = 1111.0
+        self.student['studycourse'].current_session = 2016
         error, payment = utils.setPaymentDetails('restitution',self.student)
         self.assertEqual(payment.p_level, 100)
-        self.assertEqual(payment.p_session, 2004)
+        self.assertEqual(payment.p_session, 2016)
         self.assertEqual(payment.amount_auth, 1111.0)
         self.assertEqual(payment.p_item, u'')
         self.assertEqual(error, None)
 
+        self.student['studycourse'].current_session = 2004
         error, payment = utils.setPaymentDetails('clearance',self.student, 2004, 100)
         self.assertEqual(error, 'This is not a previous session.')
Index: main/waeup.aaue/trunk/src/waeup/aaue/students/utils.py
===================================================================
--- main/waeup.aaue/trunk/src/waeup/aaue/students/utils.py	(revision 15165)
+++ main/waeup.aaue/trunk/src/waeup/aaue/students/utils.py	(revision 15178)
@@ -299,6 +299,7 @@
             amount = academic_session.booking_fee
         elif category == 'restitution':
-            if student.entry_session >= 2016 \
-                or student.current_mode not in ('ug_ft', 'dp_ft'):
+            if student.current_session != 2016 \
+                or student.current_mode not in ('ug_ft', 'dp_ft') \
+                or student.is_fresh:
                 return _(u'Restitution fee payment not required.'), None
             amount = academic_session.restitution_fee
