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 7846ebec04d761bff05a185b31e0e5f9abc8d6d4..6029e654e4828f0efbd8c6f772f1e25f85687b2e 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
@@ -798,6 +798,14 @@ public class GTAManagerImpl implements GTAManager {
 				.setParameter("taskListKey", taskList.getKey())
 				.executeUpdate();
 			
+			StringBuilder taskSb = new StringBuilder(128);
+			taskSb.append("delete from gtataskrevision as taskrev where taskrev.task.key in (")
+			      .append("  select task.key from gtatask as task where task.taskList.key=:taskListKey)");
+			numOfDeletedObjects += dbInstance.getCurrentEntityManager()
+				.createQuery(taskSb.toString())
+				.setParameter("taskListKey", taskList.getKey())
+				.executeUpdate();
+			
 			String deleteTasks = "delete from gtatask as task where task.taskList.key=:taskListKey";
 			numOfDeletedObjects += dbInstance.getCurrentEntityManager().createQuery(deleteTasks)
 				.setParameter("taskListKey", taskList.getKey())
diff --git a/src/test/java/org/olat/course/nodes/gta/manager/GTAManagerTest.java b/src/test/java/org/olat/course/nodes/gta/manager/GTAManagerTest.java
index 87da8190b411dc5419709c721e845abf06a68940..1b23e0fa3d71471ba43b62e3abb9475552a3647f 100644
--- a/src/test/java/org/olat/course/nodes/gta/manager/GTAManagerTest.java
+++ b/src/test/java/org/olat/course/nodes/gta/manager/GTAManagerTest.java
@@ -519,6 +519,48 @@ public class GTAManagerTest extends OlatTestCase {
 		Assert.assertEquals(0, deletedAssignedTasks.size());
 	}
 	
+
+	@Test
+	public void deleteTaskList_withRevisions() {
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("gta-user-29");
+		Identity participant = JunitTestHelper.createAndPersistIdentityAsRndUser("gta-user-30");
+		BusinessGroup businessGroup = businessGroupDao.createAndPersist(coach, "gdao", "gdao-rev-delete-desc", -1, -1, false, false, false, false, false);
+		businessGroupRelationDao.addRole(participant, businessGroup, GroupRole.participant.name());
+		dbInstance.commit();
+		RepositoryEntry re = deployGTACourse();
+		GTACourseNode node = getGTACourseNode(re);
+		node.getModuleConfiguration().setStringValue(GTACourseNode.GTASK_TYPE, GTAType.group.name());
+		TaskList tasks = gtaManager.createIfNotExists(re, node);
+		File taskFile = new File("bg.txt");
+		Assert.assertNotNull(tasks);
+		dbInstance.commit();
+		
+		//select
+		AssignmentResponse response = gtaManager.selectTask(businessGroup, tasks, node, taskFile, participant);
+		dbInstance.commitAndCloseSession();
+		Assert.assertNotNull(response);
+		
+		//check that there is tasks
+		List<Task> assignedTasks = gtaManager.getTasks(participant, re, node);
+		Assert.assertNotNull(assignedTasks);
+		Assert.assertEquals(1, assignedTasks.size());
+		
+		// create a revision date
+		gtaManager.updateTaskRevisionComment(assignedTasks.get(0), TaskProcess.revision, 1, "Hello", coach);
+		dbInstance.commitAndCloseSession();
+		
+		//delete
+		int numOfDeletedObjects = gtaManager.deleteTaskList(re, node);
+		Assert.assertEquals(3, numOfDeletedObjects);
+		dbInstance.commitAndCloseSession();
+		
+		//check that there isn't any tasks
+		List<Task> deletedAssignedTasks = gtaManager.getTasks(participant, re, node);
+		Assert.assertNotNull(deletedAssignedTasks);
+		Assert.assertTrue(deletedAssignedTasks.isEmpty());
+	}
+	
+	
 	/**
 	 * Create 2 pseudo nodes in a course, and delete the task of the first node
 	 * and check that the task of second are always there.