Index: main/waeup.kofa/trunk/CHANGES.txt
===================================================================
--- main/waeup.kofa/trunk/CHANGES.txt	(revision 14246)
+++ main/waeup.kofa/trunk/CHANGES.txt	(revision 14247)
@@ -4,4 +4,7 @@
 1.4.2.dev0 (unreleased)
 =======================
+
+* Replace `course_registration_allowed` by `course_registration_forbidden`
+  method.
 
 * Add export purge button.
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 14246)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 14247)
@@ -1592,5 +1592,10 @@
             emit_lock_message(self)
             return
-        elif not self.context.course_registration_allowed:
+        try:
+            deadline = grok.getSite()['configuration'][
+                str(self.context.level_session)].coursereg_deadline
+        except (TypeError, KeyError):
+            deadline = None
+        if deadline and deadline < datetime.now(pytz.utc):
             self.flash(_(
                 "Course registration has ended. "
@@ -2724,9 +2729,7 @@
                 mapping = {'a':max_credits}), type="warning")
             return
-        if not self.context.course_registration_allowed:
-            self.flash(_(
-                "Course registration has ended. "
-                "Please pay the late registration fee."), type="warning")
-            #self.redirect(self.url(self.context))
+        msg = self.context.course_registration_forbidden
+        if msg:
+            self.flash(msg, type="warning")
             return
         IWorkflowInfo(self.context.student).fireTransition(
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 14246)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 14247)
@@ -555,6 +555,8 @@
     gpa_params_rectified = Attribute('Corrected sessional GPA parameters')
     gpa_params = Attribute('GPA parameters for this level.')
-    cumulative_params = Attribute('Cumulative GPA and other cumulative parameters for this level')
-    course_registration_allowed = Attribute('True if registerin courses is allowed')
+    cumulative_params = Attribute(
+        'Cumulative GPA and other cumulative parameters for this level')
+    course_registration_forbidden = Attribute(
+        'Return error message if course registration is forbidden')
 
     level = schema.Choice(
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/studylevel.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/studylevel.py	(revision 14246)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/studylevel.py	(revision 14247)
@@ -32,4 +32,5 @@
 from waeup.kofa.utils.helpers import attrs_to_fields
 from waeup.kofa.students.vocabularies import StudyLevelSource
+from waeup.kofa.interfaces import MessageFactory as _
 
 def find_carry_over(ticket):
@@ -223,13 +224,12 @@
 
     @property
-    def course_registration_allowed(self):
+    def course_registration_forbidden(self):
         try:
             deadline = grok.getSite()['configuration'][
                 str(self.level_session)].coursereg_deadline
         except (TypeError, KeyError):
-            return True
+            return 
         if not deadline or deadline > datetime.now(pytz.utc):
-            return True
-        payment_made = False
+            return 
         if len(self.student['payments']):
             for ticket in self.student['payments'].values():
@@ -237,8 +237,7 @@
                     ticket.p_session == self.level_session and \
                     ticket.p_state == 'paid':
-                        payment_made = True
-        if payment_made:
-            return True
-        return False
+                        return
+        return _("Course registration has ended. "
+                 "Please pay the late registration fee.")
 
     def addCourseTicket(self, ticket, course):
