diff --git a/src/main/java/org/olat/course/nodes/appointments/ui/AppointmentListEditController.java b/src/main/java/org/olat/course/nodes/appointments/ui/AppointmentListEditController.java
index 2dd806fae8b910e2aed7997c446a1e1a966381af..4f9f28076f0d8b2138adf03b5cdc17574c0c1ee9 100644
--- a/src/main/java/org/olat/course/nodes/appointments/ui/AppointmentListEditController.java
+++ b/src/main/java/org/olat/course/nodes/appointments/ui/AppointmentListEditController.java
@@ -138,9 +138,15 @@ public class AppointmentListEditController extends AppointmentListController {
 			row.setStatusCSS("o_ap_status_" + appointment.getStatus().name());
 		}
 		
-		boolean removeUser = Type.finding == topic.getType()
-				? participations.size() > 0 && Status.confirmed == appointment.getStatus()
-				: participations.size() > 0;
+		boolean addUser = freeParticipations == null || freeParticipations.intValue() > 0;
+		boolean removeUser = participations.size() > 0;
+		if (Type.finding == topic.getType() && !noAppointmentConfirmed && Appointment.Status.confirmed != appointment.getStatus()) {
+			addUser = false;
+			removeUser = false;
+		}
+		if (addUser) {
+			forgeAddUserLink(row);
+		}
 		if (removeUser) {
 			forgeRemoveUserLink(row);
 		}
@@ -160,9 +166,7 @@ public class AppointmentListEditController extends AppointmentListController {
 				forgeConfirmLink(row, confirmable);
 			}
 		}
-		if (freeParticipations == null || freeParticipations.intValue() > 0) {
-			forgeAddUserLink(row);
-		}
+		
 		forgeDeleteLink(row);
 		forgeEditLink(row);