Index: /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students/tests/test_utils.py
===================================================================
--- /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students/tests/test_utils.py	(revision 16222)
+++ /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students/tests/test_utils.py	(revision 16223)
@@ -51,5 +51,5 @@
         error, payment = utils.setPaymentDetails('schoolfee',self.student)
         self.assertEqual(error,
-            'Registration Fee, Book Deposit, Development Fee, Municipal Fee, '
+            'Registration Fee, Book Deposit, Development Fee, Fresh Students Municipal Fee, '
             'Parents Consultative Forum (PCF) Fee must be paid before Tution Fee. '
             'Make either single payments or make a \'Required Combi Payment\'.')
@@ -67,5 +67,5 @@
         error, payment = utils.setPaymentDetails('schoolfee',self.student)
         self.assertEqual(error,
-            'Book Deposit, Development Fee, Municipal Fee, Parents Consultative '
+            'Book Deposit, Development Fee, Fresh Students Municipal Fee, Parents Consultative '
             'Forum (PCF) Fee must be paid before Tution Fee. '
             'Make either single payments or make a \'Required Combi Payment\'.')
@@ -77,5 +77,5 @@
         error, payment = utils.setPaymentDetails('schoolfee',self.student)
         self.assertEqual(error,
-            'Registration Fee, Book Deposit, Development Fee, Municipal Fee, '
+            'Registration Fee, Book Deposit, Development Fee, Fresh Students Municipal Fee, '
             'Parents Consultative Forum (PCF) Fee must be paid before Tution Fee. '
             'Make either single payments or make a \'Required Combi Payment\'.')
@@ -83,5 +83,5 @@
         error, payment = utils.setPaymentDetails('schoolfee',self.student)
         self.assertEqual(error,
-            'Book Deposit, Development Fee, Municipal Fee, Parents Consultative '
+            'Book Deposit, Development Fee, Fresh Students Municipal Fee, Parents Consultative '
             'Forum (PCF) Fee must be paid before Tution Fee. '
             'Make either single payments or make a \'Required Combi Payment\'.')
@@ -94,5 +94,5 @@
         error, payment = utils.setPaymentDetails('schoolfee',self.student)
         self.assertEqual(error,
-            'Book Deposit, Development Fee, Municipal Fee must be paid before Tution Fee. '
+            'Book Deposit, Development Fee, Fresh Students Municipal Fee must be paid before Tution Fee. '
             'Make either single payments or make a \'Required Combi Payment\'.')
         munic_payment = createObject('waeup.StudentOnlinePayment')
Index: /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students/utils.py
===================================================================
--- /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students/utils.py	(revision 16222)
+++ /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/students/utils.py	(revision 16223)
@@ -45,10 +45,18 @@
     PORTRAIT_CHANGE_STATES = (ADMITTED, CLEARANCE,)
 
-    REQUIRED_PAYMENTS = {
+    REQUIRED_PAYMENTS_FRESH = {
         'registration': 'Registration Fee',
         'book': 'Book Deposit',
         'develop': 'Development Fee',
         'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
-        'municipal': 'Municipal Fee',
+        'municipal_fresh': 'Fresh Students Municipal Fee',
+        }
+
+    REQUIRED_PAYMENTS_RETURNING = {
+        'registration': 'Registration Fee',
+        'book': 'Book Deposit',
+        'develop': 'Development Fee',
+        'parentsconsult': 'Parents Consultative Forum (PCF) Fee',
+        'municipal_returning': 'Returning Students Municipal Fee',
         }
 
@@ -64,15 +72,19 @@
 
     def _requiredPaymentsMissing(self, student, session):
-        cats_missing = deepcopy(self.REQUIRED_PAYMENTS)
+        if student.is_fresh:
+            rp = self.REQUIRED_PAYMENTS_FRESH
+        else:
+            rp = self.REQUIRED_PAYMENTS_RETURNING
+        for ticket in student['payments'].values():
+            if ticket.p_category == 'required_combi'and \
+                ticket.p_session == session and \
+                ticket.p_state == 'paid':
+                return
+        cats_missing = deepcopy(rp)
         if len(student['payments']):
-            for category in self.REQUIRED_PAYMENTS.keys():
+            for category in rp.keys():
                 for ticket in student['payments'].values():
-                    if ticket.p_category == 'required_combi' and \
-                        ticket.p_session == session and \
-                        ticket.p_state == 'paid':
-                        cats_missing = None
-                        break
                     if ticket.p_state == 'paid' and \
-                        ticket.p_category.startswith(category) and \
+                        ticket.p_category == category and \
                         ticket.p_session == session:
                         del cats_missing[category]
@@ -107,6 +119,7 @@
             p_level = student['studycourse'].current_level
             p_current = True
-            if category in self.REQUIRED_PAYMENTS.keys() + [
-                'schoolfee','schoolfee40','secondinstal'] \
+            if category in self.REQUIRED_PAYMENTS_FRESH.keys() \
+                + self.REQUIRED_PAYMENTS_RETURNING.keys() \
+                + ['schoolfee','schoolfee40','secondinstal'] \
                 and student.state == RETURNING:
                 # In case of school fee or required sundry fee payments the
@@ -200,5 +213,8 @@
             p_item = p_item.strip(' + ')
         elif category == 'required_combi':
-            rp = deepcopy(self.REQUIRED_PAYMENTS)
+            if student.is_fresh:
+                rp = deepcopy(self.REQUIRED_PAYMENTS_FRESH)
+            else:
+                rp = deepcopy(self.REQUIRED_PAYMENTS_RETURNING)
             for cat in rp:
                 fee_name = cat + '_fee'
Index: /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/utils/utils.py
===================================================================
--- /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/utils/utils.py	(revision 16222)
+++ /main/kofacustom.iuokada/trunk/src/kofacustom/iuokada/utils/utils.py	(revision 16223)
@@ -46,6 +46,6 @@
         'clinical': 'Clinical Fee (Medical Students)',
         'develop': 'Development Fee',
-        'municipal_fresh': 'Municipal Fee Fresh)',
-        'municipal_returning': 'Municipal Fee Returning)',
+        'municipal_fresh': 'Municipal Fee (Fresh Students)',
+        'municipal_returning': 'Municipal Fee (Returning Students)',
         'alumni': 'Alumni Fee',
         'conv': 'Convocation Fee',
