diff --git a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
index 9e9d168200eb97ea5f2a536165941ad7adfeb290..b7dcc657f383fdb06339f203809ee7ce48563eeb 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
@@ -48,6 +48,8 @@ public interface AssessmentModeManager {
 	 */
 	public AssessmentMode createAssessmentMode(RepositoryEntry entry);
 	
+
+	
 	public AssessmentModeToGroup createAssessmentModeToGroup(AssessmentMode mode, BusinessGroup group);
 	
 	public void deleteAssessmentModesToGroup(BusinessGroupRef group);
@@ -65,7 +67,19 @@ public interface AssessmentModeManager {
 	 */
 	public AssessmentMode merge(AssessmentMode assessmentMode, boolean forceStatus);
 	
+	/**
+	 * Delete a specific assessment mode.
+	 * 
+	 * @param assessmentMode
+	 */
 	public void delete(AssessmentMode assessmentMode);
+	
+	/**
+	 * Delete all assessment modes of a course.
+	 * 
+	 * @param entry
+	 */
+	public void delete(RepositoryEntryRef entry);
 
 	
 	public AssessmentMode getAssessmentModeById(Long key);
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 dfc928a429b4d2b8983f22f9cfbaa74d3e788646..5bb36c9be9c8d694a40acd572efbcd8b2e0494ed 100644
--- a/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java
+++ b/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java
@@ -177,6 +177,13 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager {
 		dbInstance.getCurrentEntityManager().remove(refMode);
 	}
 
+	@Override
+	public void delete(RepositoryEntryRef entry) {
+		for(AssessmentMode mode: getAssessmentModeFor(entry)) {
+			delete(mode);
+		}
+	}
+
 	@Override
 	public AssessmentMode getAssessmentModeById(Long key) {
 		List<AssessmentMode> modes = dbInstance.getCurrentEntityManager()
diff --git a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
index a9f9a9b64624f6b6d875aeb73a37e5b5a2cd5a5a..c21f837f97aec5ac09ae84642a6651ec953b870a 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
@@ -51,12 +51,13 @@ import org.olat.core.util.vfs.LocalFolderImpl;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.VFSLeaf;
+import org.olat.course.assessment.AssessmentModeManager;
 import org.olat.course.assessment.manager.UserCourseInformationsManager;
 import org.olat.course.certificate.CertificatesManager;
 import org.olat.repository.ErrorList;
 import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryEntryAuthorView;
 import org.olat.repository.RepositoryEntryAllowToLeaveOptions;
+import org.olat.repository.RepositoryEntryAuthorView;
 import org.olat.repository.RepositoryEntryMyView;
 import org.olat.repository.RepositoryEntryRef;
 import org.olat.repository.RepositoryEntryRelationType;
@@ -114,6 +115,8 @@ public class RepositoryServiceImpl implements RepositoryService {
 	private CertificatesManager certificatesManager;
 	@Autowired
 	private UserCourseInformationsManager userCourseInformationsManager;
+	@Autowired
+	private AssessmentModeManager assessmentModeMgr;
 
 	@Autowired
 	private LifeFullIndexer lifeIndexer;
@@ -299,6 +302,8 @@ public class RepositoryServiceImpl implements RepositoryService {
 		CoreSpringFactory.getImpl(MarkManager.class).deleteMarks(entry);
 		// delete all catalog entries referencing deleted entry
 		catalogManager.resourceableDeleted(entry);
+		// delete assessment modes
+		assessmentModeMgr.delete(entry);
 		
 		//delete all policies
 		securityManager.deletePolicies(resource);