diff --git a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
index 0924eda773abe4fc199b845cff6e1c7843622927..9e9d168200eb97ea5f2a536165941ad7adfeb290 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
@@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletRequest;
 import org.olat.basesecurity.IdentityRef;
 import org.olat.course.assessment.model.SearchAssessmentModeParams;
 import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupRef;
 import org.olat.group.area.BGArea;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryRef;
@@ -49,6 +50,8 @@ public interface AssessmentModeManager {
 	
 	public AssessmentModeToGroup createAssessmentModeToGroup(AssessmentMode mode, BusinessGroup group);
 	
+	public void deleteAssessmentModesToGroup(BusinessGroupRef group);
+	
 	public AssessmentModeToArea createAssessmentModeToArea(AssessmentMode mode, BGArea area);
 	
 
diff --git a/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java
index e6b798264b49a865a3725595e388b32a09dc58f7..dfc928a429b4d2b8983f22f9cfbaa74d3e788646 100644
--- a/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java
+++ b/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java
@@ -19,7 +19,8 @@
  */
 package org.olat.course.assessment.manager;
 
-import static org.olat.core.commons.persistence.PersistenceHelper.*;
+import static org.olat.core.commons.persistence.PersistenceHelper.appendAnd;
+import static org.olat.core.commons.persistence.PersistenceHelper.appendFuzzyLike;
 
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -55,6 +56,7 @@ import org.olat.course.assessment.model.AssessmentModeToGroupImpl;
 import org.olat.course.assessment.model.SearchAssessmentModeParams;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupImpl;
+import org.olat.group.BusinessGroupRef;
 import org.olat.group.area.BGArea;
 import org.olat.group.area.BGAreaManager;
 import org.olat.group.area.BGtoAreaRelationImpl;
@@ -400,6 +402,14 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager {
 		return modeToGroup;
 	}
 
+	@Override
+	public void deleteAssessmentModesToGroup(BusinessGroupRef group) {
+		String q = "delete from courseassessmentmodetogroup as modegrrel where modegrrel.businessGroup.key=:groupKey";
+		dbInstance.getCurrentEntityManager().createQuery(q)
+			.setParameter("groupKey", group.getKey())
+			.executeUpdate();
+	}
+
 	@Override
 	public AssessmentModeToArea createAssessmentModeToArea(AssessmentMode mode, BGArea area) {
 		AssessmentModeToAreaImpl modeToArea = new AssessmentModeToAreaImpl();
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java
index da0954bc21cc4b21e4727b70dde0377a25b00ee8..067869d6ea7e0b67eed8ed3ceed96e5c8ec95495 100644
--- a/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java
@@ -440,7 +440,7 @@ public class AssessmentModeEditController extends FormBasicController {
 		if(targetEl.isOneSelected()) {
 			Target target = AssessmentMode.Target.valueOf(targetEl.getSelectedKey());
 			if(target == Target.courseAndGroups || target == Target.groups) {
-				if(groupKeys.isEmpty()) {
+				if(groupKeys.isEmpty() && areaKeys.isEmpty()) {
 					targetEl.setErrorKey("error.group.missing", null);
 					allOk &= false;
 				}	
diff --git a/src/main/java/org/olat/group/area/BGAreaManagerImpl.java b/src/main/java/org/olat/group/area/BGAreaManagerImpl.java
index 9e56fc1c5abca7b1680e43fa94645d48a4f152e4..51c99d14d8cef3680fc388d763cb6136d372001f 100644
--- a/src/main/java/org/olat/group/area/BGAreaManagerImpl.java
+++ b/src/main/java/org/olat/group/area/BGAreaManagerImpl.java
@@ -121,17 +121,20 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager {
 	/**
 	 * @see org.olat.group.area.BGAreaManager#deleteBGArea(org.olat.group.area.BGArea)
 	 */
-	// o_clusterOK by:cg must be synchronized too
+	@Override
 	public void deleteBGArea(final BGArea area) {
 		final OLATResource resource = area.getResource();
 		
-		CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(resource, new SyncerExecutor(){
+		CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(resource, new SyncerExecutor() {
+			@Override
 			public void execute() {
 				BGArea reloadArea = loadArea(area.getKey());
 				if (reloadArea != null) {
 					// 1) delete all area - group relations
 					deleteBGtoAreaRelations(reloadArea);
-					// 2) delete area itself
+					// 2) delete area - assessment mode relations
+					deleteAssessmentModeToAreaRelations(reloadArea);
+					// 3) delete area itself
 					dbInstance.deleteObject(reloadArea);
 					logAudit("Deleted Business Group Area", reloadArea.toString());
 				} else {
@@ -146,6 +149,7 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager {
 	 * 
 	 * @param group
 	 */
+	@Override
 	public void deleteBGtoAreaRelations(BusinessGroup group) {
 		StringBuilder sb = new StringBuilder();
 		sb.append(" delete from ").append(BGtoAreaRelationImpl.class.getName()).append(" as bgarel where bgarel.businessGroup.key=:groupKey");
@@ -450,4 +454,13 @@ public class BGAreaManagerImpl extends BasicManager implements BGAreaManager {
 			.setParameter("areaKey", area.getKey())
 			.executeUpdate();
 	}
+	
+	private void deleteAssessmentModeToAreaRelations(BGArea area) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("delete from courseassessmentmodetoarea as modearel where modearel.area.key=:areaKey");
+		
+		dbInstance.getCurrentEntityManager().createQuery(sb.toString())
+			.setParameter("areaKey", area.getKey())
+			.executeUpdate();
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
index ecb3cd915968336d05ce4f4aada8f8b1870d78c3..c5185c2e192e3639a77dd05b54f8a901f72281cb 100644
--- a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
+++ b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
@@ -68,6 +68,7 @@ import org.olat.core.util.mail.MailTemplate;
 import org.olat.core.util.mail.MailerResult;
 import org.olat.core.util.resource.OLATResourceableJustBeforeDeletedEvent;
 import org.olat.core.util.resource.OresHelper;
+import org.olat.course.assessment.AssessmentModeManager;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupAddResponse;
 import org.olat.group.BusinessGroupManagedFlag;
@@ -147,6 +148,8 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
 	@Autowired
 	private ContactDAO contactDao;
 	@Autowired
+	private AssessmentModeManager assessmentModeMgr;
+	@Autowired
 	private BusinessGroupRelationDAO businessGroupRelationDAO;
 	@Autowired
 	private RepositoryEntryRelationDAO repositoryEntryRelationDao;
@@ -747,6 +750,7 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
 			areaManager.deleteBGtoAreaRelations(group);
 			// 3) Delete the relations
 			businessGroupRelationDAO.deleteRelationsToRepositoryEntry(group);
+			assessmentModeMgr.deleteAssessmentModesToGroup(group);
 			// 4) delete properties
 			propertyManager.deleteProperties(null, group, null, null, null);
 			propertyManager.deleteProperties(null, null, group, null, null);