Index: main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py	(revision 13570)
+++ main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py	(revision 13574)
@@ -819,4 +819,10 @@
         )
 
+    transfer_fee = schema.Float(
+        title = _(u'Transfer Fee'),
+        default = 0.0,
+        required = False,
+        )
+
     def getSessionString():
         """Return the session string from the vocabulary.
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 13570)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 13574)
@@ -1739,4 +1739,6 @@
             self.flash(error, type="danger")
             return
+        if p_category == 'transfer':
+            payment.p_item = self.request.form['new_programme']
         self.context[payment.p_id] = payment
         self.flash(_('Payment ticket created.'))
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/onlinepaymentaddform.pt
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/onlinepaymentaddform.pt	(revision 13570)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/onlinepaymentaddform.pt	(revision 13574)
@@ -1,22 +1,25 @@
 <form action="." tal:attributes="action request/URL" method="post"
       enctype="multipart/form-data">
-  <table class="form-table">
-    <tbody>
-      <tr>
-        <td class="fieldname">
-          <span>Payment Category</span>:
-        </td>
-        <td>
-          <select id="form.p_category" name="form.p_category" size="1"
-                  class="form-control half">
-            <option tal:repeat="item view/selectable_categories"
-                    tal:attributes="value python:item[0]">
-              <span tal:replace="python:item[1]">FEE CATEGORY</span>
-            </option>
-          </select>
-        </td>
-      </tr>
-    </tbody>
-  </table>
+
+  <label for="p_cat" i18n:translate="">
+    Payment Category:
+  </label>
+  <select id="form.p_category" name="form.p_category" size="1"
+          class="form-control half" onclick="test()">
+    <option tal:repeat="item view/selectable_categories"
+            tal:attributes="value python:item[0]">
+      <span tal:replace="python:item[1]">FEE CATEGORY</span>
+    </option>
+  </select>
+
+  <span id="new_programme" style="display: none;">
+    <br />
+    <label for="new_programme" i18n:translate="">
+      Desired Course of Study:
+    </label>
+    <input class="textType" id="new_programme" name="new_programme"
+      type="text">
+  </span>
+  <br />
   <div tal:condition="view/availableActions">
     <input tal:repeat="action view/actions"
@@ -25,2 +28,12 @@
   </div>
 </form>
+
+<script type="text/javascript">
+  function test() {
+      if (document.getElementById('form.p_category').value == 'transfer') {
+          document.getElementById('new_programme').style.display = 'block';
+      } else {
+          document.getElementById('new_programme').style.display = 'none';
+      }
+  }
+</script>
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 13570)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 13574)
@@ -196,4 +196,5 @@
         configuration.booking_fee = 123.4
         configuration.maint_fee = 987.0
+        configuration.transfer_fee = 456.0
         configuration.late_registration_fee = 345.0
         self.app['configuration'].addSessionConfiguration(configuration)
@@ -1062,4 +1063,20 @@
         self.assertEqual(ac.cost, 4567.0)
         return
+
+    def test_add_transfer_payment(self):
+        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
+        self.browser.open(self.payments_path)
+        self.browser.getLink("Add current session payment ticket").click()
+        self.browser.getControl(name="form.p_category").value = ['transfer']
+        self.browser.getControl(name="new_programme").value = 'my new study course'
+        self.browser.getControl("Create ticket").click()
+        self.assertMatches('...ticket created...',
+                           self.browser.contents)
+        ctrl = self.browser.getControl(name='val_id')
+        value = ctrl.options[0]
+        self.browser.getLink(value).click()
+        self.assertMatches('...my new study course...',
+                           self.browser.contents)
+        self.assertEqual(self.student['payments'][value].p_item, u'my new study course')
 
     def test_manage_payments_bypass_ac_creation(self):
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 13570)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/utils.py	(revision 13574)
@@ -465,4 +465,6 @@
         elif category == 'transcript':
             amount = academic_session.transcript_fee
+        elif category == 'transfer':
+            amount = academic_session.transfer_fee
         elif category == 'late_registration':
             amount = academic_session.late_registration_fee
