Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r83ad7bbcfa9124cdf2b8d891f91252b1ed35f74a -r3568cf56d0f6e3a700a6946f793b8490cbc98371 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 83ad7bbcfa9124cdf2b8d891f91252b1ed35f74a) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 3568cf56d0f6e3a700a6946f793b8490cbc98371) @@ -841,13 +841,13 @@ } else if (questionDto.getType() == QbQuestion.TYPE_ORDERING) { float maxMarkForCorrectAnswer = maxMark / questionDto.getOptionDtos().size(); - TreeSet correctOptionSet = new TreeSet<>(); - Set originalOptions = questionResult.getQuestionDto().getOptionDtos(); - correctOptionSet.addAll(originalOptions); - ArrayList correctOptionList = new ArrayList<>(correctOptionSet); + + Set originalOptions = (new QuestionDTO(questionResult.getQbToolQuestion())).getOptionDtos(); + ArrayList optionsInCorrectOrder = new ArrayList<>(originalOptions); + int i = 0; for (OptionDTO optionDto : questionDto.getOptionDtos()) { - if (optionDto.getUid().equals(correctOptionList.get(i++).getUid())) { + if (optionDto.getUid().equals(optionsInCorrectOrder.get(i++).getUid())) { mark += maxMarkForCorrectAnswer; } }