diff --git a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java
index 7868b343e2a0e6ef1b5cc09aa8c023870d15656d..b34c9f83a07ba4c53e6fc0d9932972a8effc8ecd 100644
--- a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java
+++ b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java
@@ -48,7 +48,7 @@ public class PointBasedLearningProgress extends VariantLearningProgress {
 		if (courseMaximumValue == 0 || numUsers == 0) {
 			return 0;
 		}
-		final double courseAverageValue = userTotalValue / numUsers;
+		final double courseAverageValue = (double) userTotalValue / numUsers;
 		final double courseProgress = courseAverageValue / courseMaximumValue;
 		return (int) Math.min(100, Math.round(courseProgress * 100));
 	}
diff --git a/src/test/java/de/thm/arsnova/domain/PointBasedLearningProgressTest.java b/src/test/java/de/thm/arsnova/domain/PointBasedLearningProgressTest.java
index 9e8e6ba76d7370fc0ad594a6e82c23fd52bb75e7..f6a71ef17e4596db6d10e84b1db5236d2a47af96 100644
--- a/src/test/java/de/thm/arsnova/domain/PointBasedLearningProgressTest.java
+++ b/src/test/java/de/thm/arsnova/domain/PointBasedLearningProgressTest.java
@@ -57,27 +57,30 @@ public class PointBasedLearningProgressTest {
 
 	@Test
 	public void shouldFilterBasedOnQuestionVariant() {
+		// Total of 300 Points
 		String q1 = this.addQuestion("lecture", 100);
-		String q2 = this.addQuestion("preparation", 100);
+		String q2 = this.addQuestion("lecture", 100);
+		String q3 = this.addQuestion("lecture", 100);
 		User u1 = new TestUser("user1");
 		User u2 = new TestUser("user2");
-		// first question is answered correctly, second one is not
+		User u3 = new TestUser("user3");
+		// Both users achieve 200 points
 		this.addAnswer(q1, u1, 100);
 		this.addAnswer(q1, u2, 100);
+		this.addAnswer(q1, u3, 0);
 		this.addAnswer(q2, u1, 0);
-		this.addAnswer(q2, u2, 0);
+		this.addAnswer(q2, u2, 100);
+		this.addAnswer(q2, u3, 0);
+		this.addAnswer(q3, u1, 100);
+		this.addAnswer(q3, u2, 100);
+		this.addAnswer(q3, u3, 0);
 
 		lp.setQuestionVariant("lecture");
-		LearningProgressValues lectureProgress = lp.getCourseProgress(null);
-		LearningProgressValues myLectureProgress = lp.getMyProgress(null, u1);
-		lp.setQuestionVariant("preparation");
-		LearningProgressValues prepProgress = lp.getCourseProgress(null);
-		LearningProgressValues myPrepProgress = lp.getMyProgress(null, u1);
-
-		assertEquals(100, lectureProgress.getCourseProgress());
-		assertEquals(100, myLectureProgress.getMyProgress());
-		assertEquals(0, prepProgress.getCourseProgress());
-		assertEquals(0, myPrepProgress.getMyProgress());
+		LearningProgressValues u1LectureProgress = lp.getMyProgress(null, u1);
+		// (500/3) / 300 ~= 0,56.
+		assertEquals(56, u1LectureProgress.getCourseProgress());
+		// 200 / 300 ~= 0,67.
+		assertEquals(67, u1LectureProgress.getMyProgress());
 	}
 
 	@Test