Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -r16593058f78a135e25dae055f0fc16c4bed4da42 -r50cbf1b5ae62c1b0e9a6c391e6ecda8ae284ad02 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 16593058f78a135e25dae055f0fc16c4bed4da42) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 50cbf1b5ae62c1b0e9a6c391e6ecda8ae284ad02) @@ -61,6 +61,7 @@ import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.learningdesign.LearnerChoiceGrouper; import org.lamsfoundation.lams.learningdesign.LearnerChoiceGrouping; +import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.OptionsActivity; import org.lamsfoundation.lams.learningdesign.SequenceActivity; import org.lamsfoundation.lams.learningdesign.ToolActivity; @@ -354,8 +355,10 @@ public void createToolSessionsIfNecessary(Activity activity, LearnerProgress learnerProgress) { try { if ((activity != null) && activity.isToolActivity()) { - lamsCoreToolService.createToolSession(learnerProgress.getUser(), (ToolActivity) activity, - learnerProgress.getLesson()); + // make sure that the lesson corresponds to the activity + LearningDesign learningDesign = activity.getLearningDesign(); + Lesson lesson = (Lesson) learningDesign.getLessons().iterator().next(); + lamsCoreToolService.createToolSession(learnerProgress.getUser(), (ToolActivity) activity, lesson); } } catch (RequiredGroupMissingException e) { LearnerService.log.warn("error occurred in 'createToolSessionFor':" + e.getMessage());