diff --git a/src/main/java/org/olat/course/nodes/gta/GTAManager.java b/src/main/java/org/olat/course/nodes/gta/GTAManager.java
index 11581dedcef8a08672b91e2bf9a9c3f253e62dea..0499a8f79fd9f8c63b5e1e6ad4a3e6f8cbda6484 100644
--- a/src/main/java/org/olat/course/nodes/gta/GTAManager.java
+++ b/src/main/java/org/olat/course/nodes/gta/GTAManager.java
@@ -356,6 +356,8 @@ public interface GTAManager {
 	public boolean toggleMark(RepositoryEntry entry, GTACourseNode gtaNode, Identity marker, Identity participant);
 
 	public List<IdentityMark> getMarks(RepositoryEntry entry, GTACourseNode gtaNode, Identity marker);
+	
+	public boolean hasMarks(RepositoryEntry entry, GTACourseNode gtaNode, Identity marker);
 
 	public void log(String step, String operation, Task assignedTask, Identity actor, Identity assessedIdentity, BusinessGroup assessedGroup,
 			CourseEnvironment courseEnv, GTACourseNode cNode);
diff --git a/src/main/java/org/olat/course/nodes/gta/manager/GTAIdentityMarkDAO.java b/src/main/java/org/olat/course/nodes/gta/manager/GTAIdentityMarkDAO.java
index 3c0042b897b3f6c9587fb5d54bd88293e642a591..bc939638e072a4689d059a67a2733aaf4746be5f 100644
--- a/src/main/java/org/olat/course/nodes/gta/manager/GTAIdentityMarkDAO.java
+++ b/src/main/java/org/olat/course/nodes/gta/manager/GTAIdentityMarkDAO.java
@@ -82,6 +82,21 @@ public class GTAIdentityMarkDAO {
 		return !marks.isEmpty();
 	}
 
+	public boolean hasMarks(TaskList taskList, Identity marker) {
+		if (taskList == null || taskList.getKey() == null || marker == null || marker.getKey() == null)
+			return false;
+
+		List<IdentityMark> marks = dbInstance.getCurrentEntityManager()
+				.createNamedQuery("loadByMarker", IdentityMark.class)
+				.setParameter("taskListKey", taskList.getKey())
+				.setParameter("markerKey", marker.getKey())
+				.setFirstResult(0)
+				.setMaxResults(1)
+				.getResultList();
+		
+		return !marks.isEmpty();
+	}
+
 	public void deleteMark(TaskList taskList, Identity marker, Identity participant) {
 		if (taskList == null || taskList.getKey() == null || marker == null || marker.getKey() == null
 				|| participant == null || participant.getKey() == null) {
diff --git a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java
index e2dea18abe5766e7f92070b96dca56ee0bb2f70d..87fdceec993fb1baa3745542494fec452820edff 100644
--- a/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java
+++ b/src/main/java/org/olat/course/nodes/gta/manager/GTAManagerImpl.java
@@ -1589,6 +1589,13 @@ public class GTAManagerImpl implements GTAManager, DeletableGroupData {
 		return gtaMarkDao.loadMarks(taskList, marker);
 	}
 
+
+	@Override
+	public boolean hasMarks(RepositoryEntry entry, GTACourseNode gtaNode, Identity marker) {
+		TaskList taskList = getTaskList(entry, gtaNode);
+		return gtaMarkDao.hasMarks(taskList, marker);
+	}
+
 	@Override
 	public AssessmentEntryStatus convertToAssessmentEntrystatus(Task task, GTACourseNode cNode) {
 		TaskProcess status = task.getTaskStatus();
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTARunController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTARunController.java
index 5efc2db387ca0041583a0ff0e032bc501bdf87bd..11f8178aa7cfba08f25f9dda421552dd0e958c1c 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/GTARunController.java
+++ b/src/main/java/org/olat/course/nodes/gta/ui/GTARunController.java
@@ -93,7 +93,7 @@ public class GTARunController extends BasicController implements Activateable2 {
 				manageLink = LinkFactory.createLink("run.manage.coach", mainVC, this);
 				segmentView.addSegment(manageLink, false);
 			}
-			doOpenCoach(ureq);
+			doOpenSelectionList(ureq);
 			mainVC.put("segments", segmentView);
 			putInitialPanel(mainVC);
 		} else if(isManagementTabAvalaible(config)) {
@@ -107,7 +107,7 @@ public class GTARunController extends BasicController implements Activateable2 {
 			manageLink = LinkFactory.createLink("run.manage.coach", mainVC, this);
 			segmentView.addSegment(manageLink, false);
 
-			doOpenCoach(ureq);
+			doOpenSelectionList(ureq);
 			mainVC.put("segments", segmentView);
 			putInitialPanel(mainVC);
 		} else if(membership.isCoach() || userCourseEnv.isAdmin()) {
@@ -119,7 +119,7 @@ public class GTARunController extends BasicController implements Activateable2 {
 			coachLink = LinkFactory.createLink("run.coach.all", mainVC, this);
 			segmentView.addSegment(coachLink, true);
 
-			doOpenCoach(ureq);
+			doOpenSelectionList(ureq);
 			mainVC.put("segments", segmentView);
 			putInitialPanel(mainVC);
 		} else if(membership.isParticipant()) {
@@ -203,6 +203,22 @@ public class GTARunController extends BasicController implements Activateable2 {
 		//
 	}
 	
+	private void doOpenSelectionList(UserRequest ureq) {
+		RepositoryEntry entry = userCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
+		boolean hasMarks = gtaManager.hasMarks(entry, gtaNode, getIdentity());
+		if (hasMarks) {
+			doOpenMarked(ureq);
+			if(segmentView != null) {
+				segmentView.select(markedLink);
+			}
+		} else {
+			doOpenCoach(ureq);
+			if(segmentView != null) {
+				segmentView.select(coachLink);
+			}
+		}
+	}
+	
 	private Activateable2 doOpenRun(UserRequest ureq) {
 		if(runCtrl == null) {
 			createRun(ureq);
diff --git a/src/test/java/org/olat/course/nodes/gta/manager/GTAIdentityMarkDAOTest.java b/src/test/java/org/olat/course/nodes/gta/manager/GTAIdentityMarkDAOTest.java
index e30953d7e1548a5a1f2c16110a759956c91f850a..0639480752fae18b7f62e8412a4d623029e16ec0 100644
--- a/src/test/java/org/olat/course/nodes/gta/manager/GTAIdentityMarkDAOTest.java
+++ b/src/test/java/org/olat/course/nodes/gta/manager/GTAIdentityMarkDAOTest.java
@@ -125,6 +125,37 @@ public class GTAIdentityMarkDAOTest extends OlatTestCase {
 		assertThat(isMarked).isFalse();
 	}
 	
+	@Test
+	public void shouldCheckIfHasMarks() {
+		TaskList taskList = createTaskList();
+		Identity marker = JunitTestHelper.createAndPersistIdentityAsAuthor("coach");
+		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsUser("participant1");
+		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsUser("participant2");
+		sut.createAndPersisitMark(taskList, marker, participant1);
+		sut.createAndPersisitMark(taskList, marker, participant2);
+		dbInstance.commitAndCloseSession();
+		
+		boolean hasMarks = sut.hasMarks(taskList, marker);
+		
+		assertThat(hasMarks).isTrue();
+	}
+	
+	@Test
+	public void shouldCheckIfHasNoMarks() {
+		TaskList taskList = createTaskList();
+		TaskList otherTaskList = createTaskList();
+		Identity marker = JunitTestHelper.createAndPersistIdentityAsAuthor("coach");
+		Identity otherMarker = JunitTestHelper.createAndPersistIdentityAsAuthor("otherCoach");
+		Identity participant = JunitTestHelper.createAndPersistIdentityAsUser("participant3");
+		sut.createAndPersisitMark(otherTaskList, marker, participant);
+		sut.createAndPersisitMark(taskList, otherMarker, participant);
+		dbInstance.commitAndCloseSession();
+		
+		boolean hasMarks = sut.hasMarks(taskList, marker);
+		
+		assertThat(hasMarks).isFalse();
+	}
+	
 	@Test
 	public void shouldDeleteMarkOfAMarker() {
 		TaskList taskList = createTaskList();