diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java
index 3513e98df24615a77aaa032b96ca501730df3fae..2e57ec79f917024206abc79bfb9755a821068a4c 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java
+++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java
@@ -21,7 +21,9 @@ package org.olat.course.nodes.gta.ui;
 
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 
+import org.olat.basesecurity.GroupRoles;
 import org.olat.core.commons.services.notifications.PublisherData;
 import org.olat.core.commons.services.notifications.SubscriptionContext;
 import org.olat.core.commons.services.notifications.ui.ContextualSubscriptionController;
@@ -34,6 +36,10 @@ import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.id.Identity;
 import org.olat.core.util.Formatter;
 import org.olat.core.util.StringHelper;
+import org.olat.course.CourseFactory;
+import org.olat.course.ICourse;
+import org.olat.course.assessment.AssessmentHelper;
+import org.olat.course.assessment.AssessmentManager;
 import org.olat.course.assessment.manager.UserCourseInformationsManager;
 import org.olat.course.nodes.GTACourseNode;
 import org.olat.course.nodes.gta.GTAManager;
@@ -45,6 +51,7 @@ import org.olat.course.nodes.gta.TaskProcess;
 import org.olat.course.run.environment.CourseEnvironment;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupService;
 import org.olat.modules.ModuleConfiguration;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryService;
@@ -92,6 +99,8 @@ public abstract class GTAAbstractController extends BasicController {
 	@Autowired
 	protected RepositoryService repositoryService;
 	@Autowired
+	protected BusinessGroupService businessGroupService;
+	@Autowired
 	protected UserCourseInformationsManager userCourseInformationsManager;
 	
 	public GTAAbstractController(UserRequest ureq, WindowControl wControl,
@@ -375,6 +384,7 @@ public abstract class GTAAbstractController extends BasicController {
 						&& date.compareTo(new Date()) < 0) {
 					//push to the next step
 					assignedTask = gtaManager.nextStep(assignedTask, gtaNode);
+					doUpdateAttempts();
 				}
 			} else if(dueDate.getMessage() != null) {
 				mainVC.contextPut("submitDueDateMsg", dueDate.getMessage());
@@ -461,6 +471,26 @@ public abstract class GTAAbstractController extends BasicController {
 		return assignedTask;
 	}
 	
+	protected void doUpdateAttempts() {
+		if(businessGroupTask) {
+			List<Identity> identities = businessGroupService.getMembers(assessedGroup, GroupRoles.participant.name());
+			AssessmentManager assessmentManager = courseEnv.getAssessmentManager();
+			assessmentManager.preloadCache(identities);
+			ICourse course = CourseFactory.loadCourse(courseEnv.getCourseResourceableId());
+
+			for(Identity identity:identities) {
+				UserCourseEnvironment uce = AssessmentHelper.createAndInitUserCourseEnvironment(identity, course);
+				gtaNode.incrementUserAttempts(uce);
+			}
+		} else {
+			if(userCourseEnv == null) {
+				ICourse course = CourseFactory.loadCourse(courseEnv.getCourseResourceableId());
+				userCourseEnv = AssessmentHelper.createAndInitUserCourseEnvironment(assessedIdentity, course);
+			}
+			gtaNode.incrementUserAttempts(userCourseEnv);
+		}
+	}
+	
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if("show".equals(event.getCommand())) {
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java
index 9cc1529db1d63914cabb3a539e659a38a90d59b1..7abc6bbe000549ac496435f38f135695a4c89e50 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java
+++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachController.java
@@ -49,7 +49,6 @@ import org.olat.course.nodes.gta.model.TaskDefinition;
 import org.olat.course.nodes.gta.model.TaskDefinitionList;
 import org.olat.course.run.environment.CourseEnvironment;
 import org.olat.group.BusinessGroup;
-import org.olat.group.BusinessGroupService;
 import org.olat.modules.co.ContactFormController;
 import org.olat.resource.OLATResource;
 import org.olat.user.DisplayPortraitController;
@@ -82,8 +81,6 @@ public class GTACoachController extends GTAAbstractController {
 	
 	@Autowired
 	private UserManager userManager;
-	@Autowired
-	private BusinessGroupService groupService;
 	
 	public GTACoachController(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, GTACourseNode gtaNode,
 			BusinessGroup assessedGroup, boolean withTitle, boolean withGrading) {
@@ -519,7 +516,7 @@ public class GTACoachController extends GTAAbstractController {
 		if (assessedGroup != null) {
 			String toName = assessedGroup.getName();
 			contactList = new ContactList(toName);
-			List<Identity> memberList = groupService.getMembers(assessedGroup, GroupRoles.participant.name());
+			List<Identity> memberList = businessGroupService.getMembers(assessedGroup, GroupRoles.participant.name());
 			contactList.addAllIdentites(memberList);
 			
 		} else if (assessedIdentity != null) {
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java
index c13ae7f194b5d386ffedb0d9dd035017dc1c0b69..5c782d812e767a6dfd84ee930166f6c22351030d 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java
+++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java
@@ -50,10 +50,6 @@ import org.olat.core.util.mail.MailManager;
 import org.olat.core.util.mail.MailTemplate;
 import org.olat.core.util.mail.MailerResult;
 import org.olat.core.util.vfs.VFSContainer;
-import org.olat.course.CourseFactory;
-import org.olat.course.ICourse;
-import org.olat.course.assessment.AssessmentHelper;
-import org.olat.course.assessment.AssessmentManager;
 import org.olat.course.nodes.GTACourseNode;
 import org.olat.course.nodes.MSCourseNode;
 import org.olat.course.nodes.gta.AssignmentResponse;
@@ -66,7 +62,6 @@ import org.olat.course.nodes.gta.model.TaskDefinitionList;
 import org.olat.course.nodes.ms.MSCourseNodeRunController;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.group.BusinessGroup;
-import org.olat.group.BusinessGroupService;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
@@ -93,8 +88,6 @@ public class GTAParticipantController extends GTAAbstractController {
 	
 	@Autowired
 	private MailManager mailManager;
-	@Autowired
-	private BusinessGroupService businessGroupService;
 
 	public GTAParticipantController(UserRequest ureq, WindowControl wControl,
 			GTACourseNode gtaNode, UserCourseEnvironment userCourseEnv) {
@@ -323,21 +316,7 @@ public class GTAParticipantController extends GTAAbstractController {
 		}
 	}
 	
-	private void doUpdateAttempts() {
-		if(businessGroupTask) {
-			List<Identity> identities = businessGroupService.getMembers(assessedGroup, GroupRoles.participant.name());
-			AssessmentManager assessmentManager = courseEnv.getAssessmentManager();
-			assessmentManager.preloadCache(identities);
-			ICourse course = CourseFactory.loadCourse(courseEnv.getCourseResourceableId());
-
-			for(Identity identity:identities) {
-				UserCourseEnvironment uce = AssessmentHelper.createAndInitUserCourseEnvironment(identity, course);
-				gtaNode.incrementUserAttempts(uce);
-			}
-		} else {
-			gtaNode.incrementUserAttempts(userCourseEnv);
-		}
-	}
+	
 	
 	private void doSubmissionEmail() {
 		String body = config.getStringValue(GTACourseNode.GTASK_SUBMISSION_TEXT);