Index: main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py	(revision 8305)
+++ main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py	(revision 8307)
@@ -571,9 +571,4 @@
         )
 
-    school_fee_base = schema.Float(
-        title = _(u'School Fee'),
-        default = 0.0,
-        )
-
     application_fee = schema.Float(
         title = _(u'Application Fee'),
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 8305)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 8307)
@@ -1414,5 +1414,6 @@
                            self.browser.contents)
 
-        # Students can add online school fee payment tickets
+        # Students can add online school fee payment tickets.
+        IWorkflowState(self.student).setState('returning')
         self.browser.open(self.payments_path)
         self.browser.getControl("Add online payment ticket").click()
@@ -1426,6 +1427,8 @@
         self.assertMatches('...Amount Authorized...',
                            self.browser.contents)
-        # Payment session and level have been calculated as defined
-        # in w.k.students.utils
+        self.assertEqual(self.student['payments'][value].amount_auth, 40000.0)
+        # Payment session and will be calculated as defined
+        # in w.k.students.utils because we set changed the state
+        # to returning
         self.assertEqual(self.student['payments'][value].p_session, 2005)
         self.assertEqual(self.student['payments'][value].p_level, 200)
@@ -1453,6 +1456,4 @@
 
         # The new SFE-0 pin can be used for starting course registration
-        IWorkflowInfo(self.student).fireTransition('request_clearance')
-        IWorkflowInfo(self.student).fireTransition('clear')
         self.browser.open(self.studycourse_path)
         self.browser.getLink('Start course registration').click()
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 8305)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 8307)
@@ -36,5 +36,5 @@
 from zope.formlib.form import setUpEditWidgets
 
-from waeup.kofa.interfaces import IExtFileStore, IKofaUtils
+from waeup.kofa.interfaces import IExtFileStore, IKofaUtils, RETURNING
 from waeup.kofa.interfaces import MessageFactory as _
 from waeup.kofa.students.interfaces import IStudentsUtils
@@ -259,29 +259,33 @@
         specified.
         """
-        d = {}
-        d['p_item'] = u''
-        d['amount'] = 0.0
-        d['error'] = u''
-        d['p_session'] = student['studycourse'].current_session
-        d['p_level'] = student['studycourse'].current_level
-        session = str(d['p_session'])
+        details = {}
+        details['p_item'] = u''
+        details['amount'] = 0.0
+        details['error'] = u''
+        details['p_session'] = student['studycourse'].current_session
+        details['p_level'] = student['studycourse'].current_level
+        session = str(details['p_session'])
         try:
             academic_session = grok.getSite()['configuration'][session]
         except KeyError:
-            d['error'] = u'Session configuration object is not available.'
-            return d
+            details['error'] = u'Session configuration object is not available.'
+            return details
         if category == 'schoolfee':
-            d['amount'] = academic_session.school_fee_base
-            d['p_item'] = student['studycourse'].certificate.code
-            # In case of school fee payment the payment session and level
-            # contain the values of the session the student has paid for
-            d['p_session'], d['p_level'] = self.getReturningData(student)
+            details['amount'] = getattr(
+                student['studycourse'].certificate,'school_fee_1')
+            details['p_item'] = student['studycourse'].certificate.code
+            if student.state == RETURNING:
+                # In case of returning school fee payment the payment session
+                # and level contain the values of the session the student
+                # has paid for.
+                details['p_session'], details[
+                    'p_level'] = self.getReturningData(student)
         elif category == 'clearance':
-            d['p_item'] = student['studycourse'].certificate.code
-            d['amount'] = academic_session.clearance_fee
+            details['p_item'] = student['studycourse'].certificate.code
+            details['amount'] = academic_session.clearance_fee
         elif category == 'bed_allocation':
-            d['p_item'] = self.getAccommodationDetails(student)['bt']
-            d['amount'] = academic_session.booking_fee
-        return d
+            details['p_item'] = self.getAccommodationDetails(student)['bt']
+            details['amount'] = academic_session.booking_fee
+        return details
 
     def getAccommodationDetails(self, student):
