Index: main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_webservices.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_webservices.py	(revision 16267)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_webservices.py	(revision 16268)
@@ -578,5 +578,5 @@
         self.student['payments']['my-payment2'] = payment2
         server = ServerProxy('http://mgr:mgrpw@localhost/app', allow_none=True)
-        result = server.get_bursary_data(None,None,None,None,'dep1')
+        result = server.get_bursary_data(None,None,None,None,'dep1',2012)
         self.assertEqual(
             result,[
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/webservices.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/webservices.py	(revision 16267)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/webservices.py	(revision 16268)
@@ -367,5 +367,5 @@
     def get_bursary_data(self,
             current_session=None, current_level=None, certcode=None,
-            current_mode=None, depcode=None):
+            current_mode=None, depcode=None, p_session=None):
         """Returns bursary data of a subset of students.
         """
@@ -393,28 +393,31 @@
         tz = getUtility(IKofaUtils).tzinfo
         for payment in payments:
-            hitlist.append(dict(
-                student_id=payment.student.student_id,
-                matric_number=payment.student.matric_number,
-                reg_number=payment.student.reg_number,
-                firstname=payment.student.firstname,
-                middlename=payment.student.middlename,
-                lastname=payment.student.lastname,
-                state=payment.student.state,
-                current_session=payment.student.current_session,
-                entry_session=payment.student.entry_session,
-                entry_mode=payment.student.entry_mode,
-                faccode=payment.student.faccode,
-                depcode=payment.student.depcode,
-                certcode=payment.student.certcode,
-                p_id=payment.p_id,
-                amount_auth=payment.amount_auth,
-                p_category=payment.p_category,
-                display_item=payment.display_item,
-                p_session=payment.p_session,
-                p_state=payment.p_state,
-                creation_date=str('%s#' % to_timezone(payment.creation_date, tz)),
-                payment_date=str('%s#' % to_timezone(payment.payment_date, tz)),
-                )
-              )
+            if not p_session or payment.p_session == p_session:
+                hitlist.append(dict(
+                    student_id=payment.student.student_id,
+                    matric_number=payment.student.matric_number,
+                    reg_number=payment.student.reg_number,
+                    firstname=payment.student.firstname,
+                    middlename=payment.student.middlename,
+                    lastname=payment.student.lastname,
+                    state=payment.student.state,
+                    current_session=payment.student.current_session,
+                    entry_session=payment.student.entry_session,
+                    entry_mode=payment.student.entry_mode,
+                    faccode=payment.student.faccode,
+                    depcode=payment.student.depcode,
+                    certcode=payment.student.certcode,
+                    p_id=payment.p_id,
+                    amount_auth=payment.amount_auth,
+                    p_category=payment.p_category,
+                    display_item=payment.display_item,
+                    p_session=payment.p_session,
+                    p_state=payment.p_state,
+                    creation_date=str('%s#' % to_timezone(
+                        payment.creation_date, tz)),
+                    payment_date=str('%s#' % to_timezone(
+                        payment.payment_date, tz)),
+                    )
+                  )
         return hitlist
 
