Index: main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py	(revision 9813)
+++ main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py	(revision 9814)
@@ -631,4 +631,9 @@
         )
 
+    clearance_enabled = schema.Bool(
+        title = _(u'Clearance enabled'),
+        default = False,
+        )
+
     def getSessionString():
         """Returns 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 9813)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9814)
@@ -126,4 +126,14 @@
         yield value_dict
 
+def clearance_disabled_message(student):
+    try:
+        session_config = grok.getSite()[
+            'configuration'][str(student.current_session)]
+    except KeyError:
+        return _('Session configuration object is not available.')
+    if not session_config.clearance_enabled:
+        return _('Clearance is disabled for this session.')
+    return None
+
 class StudentsBreadcrumb(Breadcrumb):
     """A breadcrumb for the students container.
@@ -724,4 +734,8 @@
 
     def update(self):
+        if clearance_disabled_message(self.context):
+            self.flash(clearance_disabled_message(self.context))
+            self.redirect(self.url(self.context,'view_clearance'))
+            return
         if self.context.state == REQUESTED:
             IWorkflowInfo(self.context).fireTransition('clear')
@@ -744,4 +758,11 @@
     form_fields = grok.AutoFields(
         IUGStudentClearance).select('officer_comment')
+
+    def update(self):
+        if clearance_disabled_message(self.context):
+            self.flash(clearance_disabled_message(self.context))
+            self.redirect(self.url(self.context,'view_clearance'))
+            return
+        return super(StudentRejectClearancePage, self).update()
 
     @action(_('Save comment and reject clearance now'), style='primary')
@@ -771,6 +792,4 @@
         return
 
-    #def render(self):
-    #    return
 
 class StudentPersonalDisplayFormPage(KofaDisplayFormPage):
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 9813)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 9814)
@@ -1267,4 +1267,11 @@
         self.assertRaises(
             Unauthorized, self.browser.open, other_student_path)
+        # Clearance is disabled for this session
+        self.browser.open(self.clearance_path)
+        self.assertFalse('Clear student' in self.browser.contents)
+        self.browser.open(self.student_path + '/clear')
+        self.assertTrue('Clearance is disabled for this session'
+            in self.browser.contents)
+        self.app['configuration']['2004'].clearance_enabled = True
         # Only in state clearance requested the CO does see the 'Clear' button
         self.browser.open(self.clearance_path)
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py	(revision 9813)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/viewlets.py	(revision 9814)
@@ -35,4 +35,5 @@
     VALIDATED)
 from waeup.kofa.students.browser import (
+    clearance_disabled_message,
     StudentClearanceManageFormPage,
     StudentBaseManageFormPage, StudentFilesUploadPage,
@@ -263,4 +264,6 @@
     @property
     def target_url(self):
+        if clearance_disabled_message(self.context):
+            return ''
         if self.context.state != REQUESTED:
             return ''
@@ -278,4 +281,6 @@
     @property
     def target_url(self):
+        if clearance_disabled_message(self.context):
+            return ''
         if self.context.state not in (REQUESTED, CLEARED):
             return ''
