Index: main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9430)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py	(revision 9437)
@@ -43,5 +43,5 @@
 from waeup.kofa.interfaces import (
     IKofaObject, IUserAccount, IExtFileStore, IPasswordValidator, IContactForm,
-    IKofaUtils, IUniversity, IObjectHistory)
+    IKofaUtils, IUniversity, IObjectHistory, academic_sessions)
 from waeup.kofa.interfaces import MessageFactory as _
 from waeup.kofa.widgets.datewidget import (
@@ -878,10 +878,23 @@
             yield(dict(code=code, title=title))
 
+    @property
+    def session_dict(self):
+        yield(dict(code='', title='--'))
+        for item in academic_sessions():
+            code = item[1]
+            title = item[0]
+            yield(dict(code=code, title=title))
+
     @action(_('Add study level'))
     def addStudyLevel(self, **data):
         level_code = self.request.form.get('addlevel', None)
+        level_session = self.request.form.get('level_session', None)
+        if not level_session:
+            self.flash(_('You must select a session for the level.'))
+            self.redirect(self.url(self.context, u'@@manage')+'?tab2')
+            return
         studylevel = createObject(u'waeup.StudentStudyLevel')
         studylevel.level = int(level_code)
-        studylevel.level_session = self.context.current_session
+        studylevel.level_session = int(level_session)
         try:
             self.context.addStudentStudyLevel(
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursemanagepage.pt
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursemanagepage.pt	(revision 9430)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/studycoursemanagepage.pt	(revision 9437)
@@ -70,7 +70,14 @@
           </span>
         </span>
-        <select id="addlevel" name="addlevel">
+        <select id="addlevel" name="addlevel" class='span5'>
           <option tal:attributes="value level/code" tal:repeat="level view/level_dict">
             <span tal:replace="level/title">LEVELTITLE
+          </span>
+          </option>
+        </select>
+        &nbsp;&nbsp;<span i18n:translate="">in session</span>&nbsp;&nbsp;
+        <select id="level_session" name="level_session" class='span3'>
+          <option tal:attributes="value session/code" tal:repeat="session view/session_dict">
+            <span tal:replace="session/title">LEVELSESSION
           </span>
           </option>
Index: main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 9430)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/interfaces.py	(revision 9437)
@@ -461,5 +461,5 @@
         title = _(u'Session'),
         source = academic_sessions_vocab,
-        required = False,
+        required = True,
         )
 
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 9430)
+++ main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py	(revision 9437)
@@ -674,7 +674,14 @@
         self.browser.getControl(name="addlevel").value = ['100']
         self.browser.getControl("Add study level").click()
+        self.assertMatches(
+            '...You must select a session...', self.browser.contents)
+        self.browser.getControl(name="addlevel").value = ['100']
+        self.browser.getControl(name="level_session").value = ['2004']
+        self.browser.getControl("Add study level").click()
         self.assertMatches('...<span>100</span>...', self.browser.contents)
         self.assertEqual(self.student['studycourse']['100'].level, 100)
         self.assertEqual(self.student['studycourse']['100'].level_session, 2004)
+        self.browser.getControl(name="addlevel").value = ['100']
+        self.browser.getControl(name="level_session").value = ['2004']
         self.browser.getControl("Add study level").click()
         self.assertMatches('...This level exists...', self.browser.contents)
@@ -683,4 +690,5 @@
             '...No study level selected...', self.browser.contents)
         self.browser.getControl(name="val_id").value = ['100']
+        self.browser.getControl(name="level_session").value = ['2004']
         self.browser.getControl("Remove selected").click()
         self.assertMatches('...Successfully removed...', self.browser.contents)
@@ -693,4 +701,5 @@
         # Add level again
         self.browser.getControl(name="addlevel").value = ['100']
+        self.browser.getControl(name="level_session").value = ['2004']
         self.browser.getControl("Add study level").click()
 
@@ -732,4 +741,5 @@
         # Add next level
         self.browser.getControl(name="addlevel").value = ['200']
+        self.browser.getControl(name="level_session").value = ['2005']
         self.browser.getControl("Add study level").click()
         self.browser.getLink("200").click()
