diff --git a/src/main/java/org/olat/course/learningpath/manager/LearningPathNodeAccessProvider.java b/src/main/java/org/olat/course/learningpath/manager/LearningPathNodeAccessProvider.java
index 203dcf6b012175042a006b5fb7cd68ba7a9f23a0..00c983ba9f93bacd2542da0b94882fda01028267 100644
--- a/src/main/java/org/olat/course/learningpath/manager/LearningPathNodeAccessProvider.java
+++ b/src/main/java/org/olat/course/learningpath/manager/LearningPathNodeAccessProvider.java
@@ -97,7 +97,8 @@ public class LearningPathNodeAccessProvider implements NodeAccessProvider {
 		FullyAssessedResult result = getConfigs(courseNode).isFullyAssessedOnNodeVisited();
 		boolean participant = userCourseEnv.isParticipant();
 		if (participant && result.isEnabled()) {
-			AssessmentEntryStatus status = getStatus(courseNode, userCourseEnv, result.isDone());
+			AssessmentEntryStatus status = getStatus(courseNode, userCourseEnv, result.isDone(),
+					result.isFullyAssessed());
 			courseAssessmentService.updateFullyAssessed(courseNode, userCourseEnv,
 					Boolean.valueOf(result.isFullyAssessed()), status, Role.user);
 			return true;
@@ -137,16 +138,17 @@ public class LearningPathNodeAccessProvider implements NodeAccessProvider {
 			FullyAssessedResult result) {
 		boolean participant = userCourseEnv.isParticipant();
 		if (participant && result.isEnabled()) {
-			AssessmentEntryStatus newStatus = getStatus(courseNode, userCourseEnv, result.isDone());
+			AssessmentEntryStatus status = getStatus(courseNode, userCourseEnv, result.isDone(),
+					result.isFullyAssessed());
 			courseAssessmentService.updateFullyAssessed(courseNode, userCourseEnv,
-					Boolean.valueOf(result.isFullyAssessed()), newStatus, by);
+					Boolean.valueOf(result.isFullyAssessed()), status, by);
 		}
 	}
 
 	private AssessmentEntryStatus getStatus(CourseNode courseNode, UserCourseEnvironment userCourseEnvironment,
-			boolean isDone) {
-		return isDone
-				? AssessmentEntryStatus.done
+			boolean setDone, boolean fullyAssessed) {
+		return setDone
+				? fullyAssessed? AssessmentEntryStatus.done: AssessmentEntryStatus.notStarted
 				: courseAssessmentService.getAssessmentEntry(courseNode, userCourseEnvironment).getAssessmentStatus();
 	}
 
diff --git a/src/main/java/org/olat/course/run/scoring/StatusCompletionEvaluator.java b/src/main/java/org/olat/course/run/scoring/StatusCompletionEvaluator.java
index 0024d799ead13696f5b2c2d7214764e792e65bd3..c70e6deae81cc550210e38559da293d89a763fcb 100644
--- a/src/main/java/org/olat/course/run/scoring/StatusCompletionEvaluator.java
+++ b/src/main/java/org/olat/course/run/scoring/StatusCompletionEvaluator.java
@@ -47,7 +47,7 @@ public class StatusCompletionEvaluator implements CompletionEvaluator {
 		case notStarted: return 0.0;
 		case inProgress: return 0.5;
 		case inReview: return 0.75;
-		case done: return 1.0;
+		case done: return 0.9; // 1.0 is reached when fully assessed
 		default: return 0.0;
 		}
 	}
diff --git a/src/test/java/org/olat/course/learningpath/manager/LearningPathNodeAccessProviderTest.java b/src/test/java/org/olat/course/learningpath/manager/LearningPathNodeAccessProviderTest.java
index 96cd45b2b516e8cd5b0955355fc5005593450494..04d5c4b474ab5ea3c6eb1d6506940e3656eee01f 100644
--- a/src/test/java/org/olat/course/learningpath/manager/LearningPathNodeAccessProviderTest.java
+++ b/src/test/java/org/olat/course/learningpath/manager/LearningPathNodeAccessProviderTest.java
@@ -198,7 +198,7 @@ public class LearningPathNodeAccessProviderTest {
 		sut.updateFullyAssessed(courseNodeMock, participantCourseEnv, Role.auto, result);
 
 		verify(courseAssessmentService).updateFullyAssessed(courseNodeMock, participantCourseEnv, Boolean.FALSE,
-				AssessmentEntryStatus.done, Role.auto);
+				AssessmentEntryStatus.notStarted, Role.auto);
 	}
 	
 	@Test