Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -rcb4de7d73e8ebd0c8526649244a2f30a0f285757 -rf7710a226fa06c406ec260be0f929c91e48495c5 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision cb4de7d73e8ebd0c8526649244a2f30a0f285757) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision f7710a226fa06c406ec260be0f929c91e48495c5) @@ -907,18 +907,17 @@ } Activity parentActivity = currentActivity.getParentActivity(); - Activity grandParentActivity = parentActivity == null ? null : parentActivity.getParentActivity(); - if (parentActivity != null && (parentActivity.isOptionsActivity() - || (grandParentActivity != null && grandParentActivity.isOptionsWithSequencesActivity()))) { + if (parentActivity != null && parentActivity.isOptionsActivity()) { // it is the optional activity which controls gate flow, not the nested tool return null; } Activity nextActivity = null; Transition transition = currentActivity.getTransitionFrom(); + Activity grandParentActivity = parentActivity == null ? null : parentActivity.getParentActivity(); if (transition != null) { nextActivity = transition.getToActivity(); - } else if (grandParentActivity != null) { + } else if (grandParentActivity != null && !grandParentActivity.isOptionsWithSequencesActivity()) { // if it is branching, then it is activity -> sequence activity -> branching activity // and the branching activity is what we need to check transition = grandParentActivity.getTransitionFrom();