Index: /main/waeup.kofa/trunk/CHANGES.txt
===================================================================
--- /main/waeup.kofa/trunk/CHANGES.txt	(revision 13122)
+++ /main/waeup.kofa/trunk/CHANGES.txt	(revision 13123)
@@ -4,4 +4,6 @@
 1.3.2.dev0 (unreleased)
 =======================
+
+* Do not create special application payment tickets with Zero amount.
 
 * Remove manual clearance lock. Replace `clearance_locked` field by
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py	(revision 13122)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/browser.py	(revision 13123)
@@ -652,5 +652,5 @@
             container, payment, self.context)
         if failure is not None:
-            self.flash(failure[0], type='danger')
+            self.flash(failure, type='danger')
             self.redirect(self.url(self.context))
             return
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py	(revision 13122)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/tests/test_browser.py	(revision 13123)
@@ -973,9 +973,9 @@
             applicant.application_number]).setPassword('apwd')
         # Add session configuration object
-        configuration = SessionConfiguration()
-        configuration.academic_session = session_1
-        configuration.transcript_fee = 200.0
-        configuration.clearance_fee = 300.0
-        self.app['configuration'].addSessionConfiguration(configuration)
+        self.configuration = SessionConfiguration()
+        self.configuration.academic_session = session_1
+        #self.configuration.transcript_fee = 200.0
+        self.configuration.clearance_fee = 300.0
+        self.app['configuration'].addSessionConfiguration(self.configuration)
 
 
@@ -996,7 +996,12 @@
             'transcript']
         self.browser.getControl(name="form.date_of_birth").value = '09/09/1988'
-        #self.browser.getControl(name="form.sex").value = ['m']
         self.browser.getControl(name="form.email").value = 'xx@yy.zz'
-        self.browser.getControl("Save").click()
+        self.configuration.transcript_fee = 0.0
+        self.browser.getControl("Save").click()
+        self.browser.getControl("Add online payment ticket").click()
+        self.assertMatches('...Amount could not be determined...',
+                           self.browser.contents)
+        self.configuration.transcript_fee = 200.0
+        self.browser.getLink("Edit application record").click()
         self.browser.getControl("Add online payment ticket").click()
         self.assertMatches('...Payment ticket created...',
Index: /main/waeup.kofa/trunk/src/waeup/kofa/applicants/utils.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/applicants/utils.py	(revision 13122)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/applicants/utils.py	(revision 13123)
@@ -51,5 +51,5 @@
             session_config = grok.getSite()['configuration'][session]
         except KeyError:
-            return _(u'Session configuration object is not available.'), None
+            return _(u'Session configuration object is not available.')
         payment.p_id = "p%s" % timestamp
         payment.p_item = container.title
@@ -59,5 +59,7 @@
             if applicant.special_application:
                 fee_name = applicant.special_application + '_fee'
-                payment.amount_auth = getattr(session_config, fee_name, 0.0)
+                payment.amount_auth = getattr(session_config, fee_name, None)
+                if payment.amount_auth in (0.0, None):
+                    return _('Amount could not be determined.')
                 payment.p_category = applicant.special_application
             return
@@ -69,5 +71,5 @@
         payment.amount_auth = session_config.application_fee
         if payment.amount_auth in (0.0, None):
-            return _('Amount could not be determined.'), None
+            return _('Amount could not be determined.')
         return
 
