Index: /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9138)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9139)
@@ -714,4 +714,7 @@
 
     def update(self):
+        if not self.context.is_current:
+            emit_lock_message(self)
+            return
         super(StudyCourseManageFormPage, self).update()
         tabs.need()
@@ -916,4 +919,7 @@
 
     def update(self):
+        if not self.context.__parent__.is_current:
+            emit_lock_message(self)
+            return
         super(StudyLevelManageFormPage, self).update()
         tabs.need()
@@ -978,4 +984,7 @@
 
     def update(self):
+        if not self.context.__parent__.is_current:
+            emit_lock_message(self)
+            return
         if str(self.context.__parent__.current_level) != self.context.__name__:
             self.flash(_('This level does not correspond current level.'))
@@ -1000,4 +1009,7 @@
 
     def update(self):
+        if not self.context.__parent__.is_current:
+            emit_lock_message(self)
+            return
         if str(self.context.__parent__.current_level) != self.context.__name__:
             self.flash(_('This level does not correspond current level.'))
@@ -1034,4 +1046,11 @@
         'score', 'automatic', 'carry_over')
     pnav = 4
+
+    def update(self):
+        if not self.context.__parent__.is_current:
+            emit_lock_message(self)
+            return
+        super(CourseTicketAddFormPage, self).update()
+        return
 
     @action(_('Add course ticket'))
@@ -1798,4 +1817,8 @@
 
     def update(self, SUBMIT=None):
+        if not self.context.is_current:
+            emit_lock_message(self)
+            return
+        super(StartSessionPage, self).update()
         if not self.context.next_session_allowed:
             self.flash(_("You are not entitled to start session."))
@@ -1855,4 +1878,7 @@
 
     def update(self):
+        if not self.context.is_current:
+            emit_lock_message(self)
+            return
         if self.context.student.state != PAID:
             emit_lock_message(self)
@@ -1887,4 +1913,7 @@
 
     def update(self):
+        if not self.context.__parent__.is_current:
+            emit_lock_message(self)
+            return
         if self.context.student.state != PAID:
             emit_lock_message(self)
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 9138)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 9139)
@@ -1958,4 +1958,10 @@
             self.certificate2)
 
+        # Add study level to old study course
+        studylevel = createObject(u'waeup.StudentStudyLevel')
+        studylevel.level = 200
+        self.student['studycourse'].addStudentStudyLevel(
+            self.certificate, studylevel)
+
         self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
         self.browser.open(self.student_path)
@@ -1971,4 +1977,52 @@
         self.browser.getControl("Transfer").click()
         self.assertTrue('Successfully transferred' in self.browser.contents)
+
+        # Add study level to new study course
+        studylevel = createObject(u'waeup.StudentStudyLevel')
+        studylevel.level = 200
+        self.student['studycourse'].addStudentStudyLevel(
+            self.certificate, studylevel)
+
+        # Edit and add pages are locked for old study courses
+        self.browser.open(self.student_path + '/studycourse/manage')
+        self.assertFalse('The requested form is locked' in self.browser.contents)
+        self.browser.open(self.student_path + '/studycourse_1/manage')
+        self.assertTrue('The requested form is locked' in self.browser.contents)
+
+        self.browser.open(self.student_path + '/studycourse/start_session')
+        self.assertFalse('The requested form is locked' in self.browser.contents)
+        self.browser.open(self.student_path + '/studycourse_1/start_session')
+        self.assertTrue('The requested form is locked' in self.browser.contents)
+
+        IWorkflowState(self.student).setState('school fee paid')
+        self.browser.open(self.student_path + '/studycourse/add')
+        self.assertFalse('The requested form is locked' in self.browser.contents)
+        self.browser.open(self.student_path + '/studycourse_1/add')
+        self.assertTrue('The requested form is locked' in self.browser.contents)
+
+        self.browser.open(self.student_path + '/studycourse/200/manage')
+        self.assertFalse('The requested form is locked' in self.browser.contents)
+        self.browser.open(self.student_path + '/studycourse_1/200/manage')
+        self.assertTrue('The requested form is locked' in self.browser.contents)
+
+        self.browser.open(self.student_path + '/studycourse/200/validate_courses')
+        self.assertFalse('The requested form is locked' in self.browser.contents)
+        self.browser.open(self.student_path + '/studycourse_1/200/validate_courses')
+        self.assertTrue('The requested form is locked' in self.browser.contents)
+
+        self.browser.open(self.student_path + '/studycourse/200/reject_courses')
+        self.assertFalse('The requested form is locked' in self.browser.contents)
+        self.browser.open(self.student_path + '/studycourse_1/200/reject_courses')
+        self.assertTrue('The requested form is locked' in self.browser.contents)
+
+        self.browser.open(self.student_path + '/studycourse/200/add')
+        self.assertFalse('The requested form is locked' in self.browser.contents)
+        self.browser.open(self.student_path + '/studycourse_1/200/add')
+        self.assertTrue('The requested form is locked' in self.browser.contents)
+
+        self.browser.open(self.student_path + '/studycourse/200/edit')
+        self.assertFalse('The requested form is locked' in self.browser.contents)
+        self.browser.open(self.student_path + '/studycourse_1/200/edit')
+        self.assertTrue('The requested form is locked' in self.browser.contents)
 
 class StudentRequestPWTests(StudentsFullSetup):
