diff --git a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java
index b4090a327380c422a69016254436075fc2133178..200df8fc9c51b6a08bbee808fdba6641a653e628 100644
--- a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java
+++ b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java
@@ -33,12 +33,15 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress {
 
 	@Override
 	protected LearningProgressValues createCourseProgress() {
+		final int courseProgress = calculateCourseProgress();
+		final int numerator = courseScore.getQuestionCount()*courseProgress/100;
+		final int denominator = courseScore.getQuestionCount();
 		LearningProgressValues lpv = new LearningProgressValues();
-		lpv.setCourseProgress(calculateCourseProgress());
+		lpv.setCourseProgress(courseProgress);
 		lpv.setNumQuestions(courseScore.getQuestionCount());
 		lpv.setNumUsers(courseScore.getTotalUserCount());
-		lpv.setNumerator(countCorrectAnswers()/courseScore.getTotalUserCount());
-		lpv.setDenominator(courseScore.getQuestionCount());
+		lpv.setNumerator(numerator);
+		lpv.setDenominator(denominator);
 		return lpv;
 	}
 
@@ -67,17 +70,6 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress {
 		return numAnswersCorrect;
 	}
 
-	private int countCorrectAnswers() {
-		int answers = 0;
-		for (QuestionScore questionScore : courseScore) {
-			if (!questionScore.hasScores()) {
-				continue;
-			}
-			answers += countCorrectAnswers(questionScore);
-		}
-		return answers;
-	}
-
 	@Override
 	protected LearningProgressValues createMyProgress(User user) {
 		final int numerator = numQuestionsCorrectForUser(user);
diff --git a/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java b/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java
index 736c40a007b2c7fde6d2e52ff496f67e97c87283..1efbde1cd05473aae781560ebd73ce954dcb6798 100644
--- a/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java
+++ b/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java
@@ -212,17 +212,17 @@ public class QuestionBasedLearningProgressTest {
 		// six answers
 		this.addAnswer(q1, u1, 10);
 		this.addAnswer(q2, u1, -100);
-		this.addAnswer(q1, u2, 10);
+		this.addAnswer(q1, u2, -100);
 		this.addAnswer(q2, u2, -100);
-		this.addAnswer(q1, u3, 10);
+		this.addAnswer(q1, u3, -100);
 		this.addAnswer(q2, u3, -100);
 
 		int numerator = lp.getCourseProgress(null).getNumerator();
 		int denominator = lp.getCourseProgress(null).getDenominator();
 
 		// If the percentage is wrong, then we need to adapt this test case!
-		assertEquals("Precondition failed -- The underlying calculation has changed", 50, lp.getCourseProgress(null).getCourseProgress());
-		assertEquals(1, numerator);
+		assertEquals("Precondition failed -- The underlying calculation has changed", 17, lp.getCourseProgress(null).getCourseProgress());
+		assertEquals(0, numerator);
 		assertEquals(2, denominator);
 	}