diff --git a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdOpenContent.java b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdOpenContent.java
index eb6d69f3f093e8190782f1a82f2bc9d058c1a2d8..ed386c402b5826254e7cf2ceaa699f0b0af55d34 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdOpenContent.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdOpenContent.java
@@ -19,6 +19,8 @@
  */
 package org.olat.core.commons.modules.bc.commands;
 
+import java.util.List;
+
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.editor.htmleditor.HTMLEditorConfig;
 import org.olat.core.commons.modules.bc.components.FolderComponent;
@@ -87,8 +89,16 @@ public class CmdOpenContent extends BasicController implements FolderCommand {
 		
 		status = FolderCommandHelper.sanityCheck(wControl, folderComponent);
 		if(status == FolderCommandStatus.STATUS_SUCCESS) {
-			currentItem = folderComponent.getCurrentContainerChildren().get(Integer.parseInt(pos));
-			status = FolderCommandHelper.sanityCheck2(wControl, folderComponent, currentItem);
+			int index = Integer.parseInt(pos);
+			List<VFSItem> children = folderComponent.getCurrentContainerChildren();
+			if(index >= 0 && index < children.size()) {
+				currentItem = folderComponent.getCurrentContainerChildren().get(index);
+				status = FolderCommandHelper.sanityCheck2(wControl, folderComponent, currentItem);
+			} else {
+				status = FolderCommandStatus.STATUS_FAILED;
+				getWindowControl().setError(translator.translate("failed"));
+				return null;
+			}	
 		}
 		if(status == FolderCommandStatus.STATUS_FAILED) {
 			return null;
diff --git a/src/main/java/org/olat/course/highscore/ui/HighScoreEditController.java b/src/main/java/org/olat/course/highscore/ui/HighScoreEditController.java
index 5c5c12e18fa7e17b303fea51c23089422ea98aa6..e66df6649412d87824cd32f4cdc53d2a7d970462 100644
--- a/src/main/java/org/olat/course/highscore/ui/HighScoreEditController.java
+++ b/src/main/java/org/olat/course/highscore/ui/HighScoreEditController.java
@@ -267,8 +267,13 @@ public class HighScoreEditController extends FormBasicController {
 		config.set(CONFIG_KEY_DATESTART, dateStart.getDate());
 		config.set(CONFIG_KEY_ANONYMIZE, displayAnonymous.isSelected(0));
 		if (showListing.isSelected(0)) {
-			config.set(CONFIG_KEY_BESTONLY, bestOnlyEl.getSelected());
-			config.set(CONFIG_KEY_NUMUSER, numTableRows.getIntValue());
+			int bestOnly = bestOnlyEl.getSelected();
+			config.set(CONFIG_KEY_BESTONLY, bestOnly);
+			if(bestOnly == 1) {
+				config.set(CONFIG_KEY_NUMUSER, numTableRows.getIntValue());
+			} else {
+				config.remove(CONFIG_KEY_NUMUSER);
+			}
 		}
 		fireEvent(ureq, Event.DONE_EVENT);
 	}
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 0db2d79d34d54a4aa756573811982c342a2fa991..7c45555fe28de265e3e0dea44af3f7eb24bb424b 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
@@ -801,6 +801,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/main/java/org/olat/modules/adobeconnect/ui/AdobeConnectRunController.java b/src/main/java/org/olat/modules/adobeconnect/ui/AdobeConnectRunController.java
index 302f6feb3bb2118bae2a1daa285c4edd1674faf7..5c8c83a6d199a34f1b014b984a8c2eabc5cf8f7b 100644
--- a/src/main/java/org/olat/modules/adobeconnect/ui/AdobeConnectRunController.java
+++ b/src/main/java/org/olat/modules/adobeconnect/ui/AdobeConnectRunController.java
@@ -181,9 +181,11 @@ public class AdobeConnectRunController extends BasicController implements Activa
 	}
 	
 	private void back() {
-		mainVC.remove(meetingCtrl.getInitialComponent());
-		removeAsListenerAndDispose(meetingCtrl);
-		meetingCtrl = null;
+		if(meetingCtrl != null) {
+			mainVC.remove(meetingCtrl.getInitialComponent());
+			removeAsListenerAndDispose(meetingCtrl);
+			meetingCtrl = null;
+		}
 	}
 	
 	private void doOpenMeetings(UserRequest ureq) {
diff --git a/src/main/java/org/olat/modules/curriculum/ui/component/CurriculumElementViewsRowComparator.java b/src/main/java/org/olat/modules/curriculum/ui/component/CurriculumElementViewsRowComparator.java
index 07a39346aa7705330b3d7d7ae7850dbb592a0345..574c33b97f04a09e0c181f7851b77f15751e28c9 100644
--- a/src/main/java/org/olat/modules/curriculum/ui/component/CurriculumElementViewsRowComparator.java
+++ b/src/main/java/org/olat/modules/curriculum/ui/component/CurriculumElementViewsRowComparator.java
@@ -62,7 +62,12 @@ public class CurriculumElementViewsRowComparator extends FlexiTreeNodeComparator
 			// This case is usually not possible
 			CurriculumElementWithViewsRow p1 = c1.getParent();
 			CurriculumElementWithViewsRow p2 = c2.getParent();
-			c = compareCurriculumElements(p1, p2);
+			if(p1 == null || p2 == null) {
+				// reversed because no parent at the top, higher in the hierarchy
+				c = -compareNullObjects(p1, p2); 
+			} else {
+				c = compareCurriculumElements(p1, p2);
+			}
 		} else {
 			// This case is usually not possible
 			c = compareDisplayName(c1, c2);
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 4006abd7bf47ae033303418ef117c3d9314703f0..b73a0fc98269fb639235370c2efb81880bbfb227 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.