Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -rda9d623352f3964daa5fe12f81a683b9377d286a -r4a197b8d9fc40820ac1069f737aefc26babb315b --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision da9d623352f3964daa5fe12f81a683b9377d286a) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 4a197b8d9fc40820ac1069f737aefc26babb315b) @@ -1511,14 +1511,16 @@ Lesson lesson = getLessonByActivity(activity); LearnerProgress learnerProgress = getProgress(learnerId, lesson.getLessonId()); - int completedSubactivities = 0; - for (Activity subactivity : (Set) parentOptionsActivity.getActivities()) { - if (LearnerProgress.ACTIVITY_COMPLETED == learnerProgress.getProgressState(subactivity)) { - completedSubactivities++; + if (learnerProgress != null) { + int completedSubactivities = 0; + for (Activity subactivity : (Set) parentOptionsActivity.getActivities()) { + if (LearnerProgress.ACTIVITY_COMPLETED == learnerProgress.getProgressState(subactivity)) { + completedSubactivities++; + } } - } - isLast = completedSubactivities == parentOptionsActivity.getMaxNumberOfOptionsNotNull() - 1; + isLast = completedSubactivities == parentOptionsActivity.getMaxNumberOfOptionsNotNull() - 1; + } } } else if (parentActivity.isBranchingActivity() || parentActivity.isParallelActivity()) { isLast = parentPosition.getLast() && isActivityLast(activity);