diff --git a/src/main/java/org/olat/_spring/extensionContext.xml b/src/main/java/org/olat/_spring/extensionContext.xml
index 771c8d381d8d765eba9c5a387f7905c356c43db6..ecfaddd8630908bef5ed3fbb40ada1befc8a4e0d 100644
--- a/src/main/java/org/olat/_spring/extensionContext.xml
+++ b/src/main/java/org/olat/_spring/extensionContext.xml
@@ -398,25 +398,6 @@
 			</list>
 		</property>
 	</bean>
-	<!--  the quota menu-entry -->
-	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints" >
-		<property name="order" value="7203" />
-		<property name="navigationKey" value="quota" />
-		<property name="actionController">	
-			<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
-				<property name="className" value="org.olat.admin.quota.QuotaController"/>
-			</bean>
-		</property>
-		<property name="translationPackage" value="org.olat.admin" />
-		<property name="i18nActionKey" value="menu.quota"/>
-		<property name="i18nDescriptionKey" value="menu.quota.alt"/>
-		<property name="parentTreeNodeIdentifier" value="sysconfigParent" /> 
-		<property name="extensionPoints">
-			<list>	
-				<value>org.olat.admin.SystemAdminMainController</value>		
-			</list>
-		</property>
-	</bean>
 	<!-- Security admin. panel -->
 	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints">
 		<property name="order" value="8805" />
diff --git a/src/main/java/org/olat/admin/sysinfo/LargeFilesController.java b/src/main/java/org/olat/admin/sysinfo/LargeFilesController.java
index 03c628e6c23f18d29e9cc106d55762816f0d4500..f4cfdf291282fd181f0bf075ce7fd10bd08fe5ac 100644
--- a/src/main/java/org/olat/admin/sysinfo/LargeFilesController.java
+++ b/src/main/java/org/olat/admin/sysinfo/LargeFilesController.java
@@ -319,10 +319,6 @@ public class LargeFilesController extends FormBasicController implements Extende
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, LargeFilesTableColumns.fileType));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, LargeFilesTableColumns.downloadCount));
 
-		DefaultFlexiColumnModel sendMail = new DefaultFlexiColumnModel(false, LargeFilesTableColumns.sendMail, "sendMail", new LargeFilesSendMailCellRenderer());
-		sendMail.setIconHeader(CSSHelper.getIconCssClassFor(CSSHelper.CSS_CLASS_MAIL));
-		columnsModel.addFlexiColumnModel(sendMail);
-
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, LargeFilesTableColumns.author, "selectAuthor"));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, LargeFilesTableColumns.license));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, LargeFilesTableColumns.language));
@@ -339,6 +335,11 @@ public class LargeFilesController extends FormBasicController implements Extende
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, LargeFilesTableColumns.pubDate));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, LargeFilesTableColumns.createdAt));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, LargeFilesTableColumns.lastModifiedAt));
+		
+		DefaultFlexiColumnModel sendMail = new DefaultFlexiColumnModel(true, LargeFilesTableColumns.sendMail, "sendMail", new LargeFilesSendMailCellRenderer());
+		sendMail.setAlwaysVisible(true);
+		sendMail.setIconHeader(CSSHelper.getIconCssClassFor(CSSHelper.CSS_CLASS_MAIL));
+		columnsModel.addFlexiColumnModel(sendMail);
 
 		largeFilesTableModel = new LargeFilesTableModel(columnsModel, getLocale());
 		largeFilesTableElement = uifactory.addTableElement(getWindowControl(), "large_files", largeFilesTableModel, getTranslator(), formLayout);
@@ -490,7 +491,7 @@ public class LargeFilesController extends FormBasicController implements Extende
 		cmsg.addEmailTo(contactList);
 		cmsg.setSubject("Too large files in your personal folder");
 
-		String bodyStart = translate("largefiles.mail.start", new String[] {user.getUser().getFirstName() + user.getUser().getLastName()});
+		String bodyStart = translate("largefiles.mail.start", new String[] {user.getUser().getFirstName() + " " + user.getUser().getLastName()});
 		String bodyFiles = "<ul>";
 		String bodyEnd = translate("largefiles.mail.end");
 
diff --git a/src/main/java/org/olat/core/commons/services/_spring/servicesCorecontext.xml b/src/main/java/org/olat/core/commons/services/_spring/servicesCorecontext.xml
index 603257c3149e46053e7edf9e5706a87e3779b653..188b1837000918ffa6bb980f7f00655e661d77d3 100644
--- a/src/main/java/org/olat/core/commons/services/_spring/servicesCorecontext.xml
+++ b/src/main/java/org/olat/core/commons/services/_spring/servicesCorecontext.xml
@@ -78,26 +78,6 @@
 		</property>
 	</bean>
 	
-	<!-- The version configuration -->
-	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints" >
-		<property name="order" value="7204" />
-		<property name="navigationKey" value="versioning" />
-		<property name="actionController">	
-			<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
-				<property name="className" value="org.olat.core.commons.services.vfs.ui.version.VersionAdminController"/>
-			</bean>
-		</property>
-		<property name="translationPackage" value="org.olat.admin" />
-		<property name="i18nActionKey" value="menu.versions"/>
-		<property name="i18nDescriptionKey" value="menu.versions.alt"/>
-		<property name="parentTreeNodeIdentifier" value="sysconfigParent" />
-		<property name="extensionPoints">
-			<list>	
-				<value>org.olat.admin.SystemAdminMainController</value>
-			</list>
-		</property>
-	</bean>
-	
 	<!-- Pdf service -->
 	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints">
 		<property name="order" value="8280" />
diff --git a/src/main/java/org/olat/core/commons/services/vfs/ui/version/VFSTrashController.java b/src/main/java/org/olat/core/commons/services/vfs/ui/version/VFSTrashController.java
index 740885d1cf4f50399233cf033d1c23cf74953c72..138f14c010fe440617cb3c4ee9f7d99edcffc25b 100644
--- a/src/main/java/org/olat/core/commons/services/vfs/ui/version/VFSTrashController.java
+++ b/src/main/java/org/olat/core/commons/services/vfs/ui/version/VFSTrashController.java
@@ -152,6 +152,7 @@ public class VFSTrashController extends FormBasicController implements ProgressD
 		orphansListTableEl = uifactory.addTableElement(getWindowControl(), "orphansList", versionsDeletedFileDataModel, 24, false, getTranslator(), tableLayout);
 		orphansListTableEl.setEmtpyTableMessageKey("version.noDeletedFiles");
 		orphansListTableEl.setMultiSelect(true);
+		orphansListTableEl.setSelectAllEnable(true);
 		FlexiTableSortOptions sortOptions = new FlexiTableSortOptions(true);
 		sortOptions.setDefaultOrderBy(new SortKey(VersionsDeletedCols.size.name(), false));
 		orphansListTableEl.setSortSettings(sortOptions);
@@ -159,9 +160,6 @@ public class VFSTrashController extends FormBasicController implements ProgressD
 		
 		orphansDeleteButton = uifactory.addFormLink("delete", tableLayout, Link.BUTTON);
 		orphansDeleteButton.setIconLeftCSS(CSSHelper.getIconCssClassFor(CSSHelper.CSS_CLASS_TRASHED));
-		
-		tableLayout.add("orphansTable", orphansListTableEl);
-		tableLayout.add("orphansDelete", orphansDeleteButton);
 	}		
 
 	@Override
diff --git a/src/main/java/org/olat/core/commons/services/vfs/ui/version/_content/orphans.html b/src/main/java/org/olat/core/commons/services/vfs/ui/version/_content/orphans.html
index 05396d8574cb002c225c792407a80d99084183d5..0193b5d04996cd98a553ed40a20ff72eb1a81db0 100644
--- a/src/main/java/org/olat/core/commons/services/vfs/ui/version/_content/orphans.html
+++ b/src/main/java/org/olat/core/commons/services/vfs/ui/version/_content/orphans.html
@@ -1,7 +1,7 @@
 <fieldset class="o_form_horizontal">
 	<legend class="o_text_right">$r.translate("version.deletedFiles")</legend>
-	$r.render("orphansTable")
+	$r.render("orphansList")
 	<div class="o_button_group">
-		$r.render("orphansDelete")
+		$r.render("delete")
 	</div>
 </fieldset>
\ No newline at end of file
diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java
index cdc43c53a7eacba1a1414700123feac334d9a55f..03bf16bdd19b8120a70a1fbde925997ad72a1d0f 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java
@@ -508,7 +508,7 @@ public class FIBAssessmentItemBuilder extends AssessmentItemBuilder {
 				if(textEntry.getAlternatives() != null && !textEntry.getAlternatives().isEmpty()) {
 					for(TextEntryAlternative alternative:textEntry.getAlternatives()) {
 						double altScore = alternative.getScore();
-						if(altScore >= 0.0d && score != null && score.doubleValue() == altScore) {
+						if(altScore >= 0.0d && score != null && score.doubleValue() != altScore) {
 							return true;
 						}
 					}
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
index bc9840006d9210896a8f2d4f3c619bb4bd01453a..813f607bac57a6dd1aae31da97c8ef2520986ad3 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
@@ -799,13 +799,13 @@ public class QuestionListController extends AbstractItemListController implement
 	}
 	
 	private void doOpenImport(UserRequest ureq) {
-		String title = translate("import");
+		removeAsListenerAndDispose(calloutCtrl);
 		removeAsListenerAndDispose(importSourcesCtrl);
+		
 		importSourcesCtrl = new ImportSourcesController(ureq, getWindowControl());
 		listenTo(importSourcesCtrl);
 		
-		removeAsListenerAndDispose(calloutCtrl);
-		calloutCtrl = new CloseableCalloutWindowController(ureq, getWindowControl(), importSourcesCtrl.getInitialComponent(), importItem, title, true, null);
+		calloutCtrl = new CloseableCalloutWindowController(ureq, getWindowControl(), importSourcesCtrl.getInitialComponent(), importItem, null, true, null);
 		listenTo(calloutCtrl);
 		calloutCtrl.activate();	
 	}
diff --git a/src/main/java/org/olat/restapi/system/MonitoringWebService.java b/src/main/java/org/olat/restapi/system/MonitoringWebService.java
index 94deb688ca6af2d55687b013f47a3a1f6fdfda13..a2e687865542e06b52c1dadc5c083eb620dac7f5 100644
--- a/src/main/java/org/olat/restapi/system/MonitoringWebService.java
+++ b/src/main/java/org/olat/restapi/system/MonitoringWebService.java
@@ -51,6 +51,7 @@ public class MonitoringWebService {
 	private static final MemoryWebService memoryWebService = new MemoryWebService();
 	private static final ThreadsWebService threadsWebService = new ThreadsWebService();
 	private static final OpenOLATStatisticsWebService ooStatsWebService = new OpenOLATStatisticsWebService();
+	private static final VFSStatsWebService vfsStatsWebService = new VFSStatsWebService();
 	
 	public MonitoringWebService() {
 		//make Spring happy
@@ -86,6 +87,12 @@ public class MonitoringWebService {
 		return threadsWebService;
 	}
 	
+	@Path("revisionsSize")
+	public VFSStatsWebService getRevisionsSizeWS() {
+		return vfsStatsWebService;
+	}
+	
+	
 	
 	/**
 	 * Return the configuration of the monitoring, which probes are available,
diff --git a/src/main/java/org/olat/restapi/system/VFSStatsWebService.java b/src/main/java/org/olat/restapi/system/VFSStatsWebService.java
new file mode 100644
index 0000000000000000000000000000000000000000..02721e961623752e0a36258d625dc5bf08bc75e7
--- /dev/null
+++ b/src/main/java/org/olat/restapi/system/VFSStatsWebService.java
@@ -0,0 +1,68 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.restapi.system;
+
+import java.util.List;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.persistence.DB;
+import org.olat.restapi.system.vo.VFSStatsVO;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * <h3>Description:</h3>
+ * 
+ * Initial Date:  21 juin 2010 <br>
+ * @author srosse, stephane.rosse@frentix.com, www.frentix.com
+ */
+public class VFSStatsWebService {
+	
+	@Autowired
+	private DB dbInstance;
+	
+	public VFSStatsWebService() {
+		CoreSpringFactory.autowireObject(this);
+	}
+	
+	@GET
+	@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+	public Response getRevisionSizeXML() {
+		StringBuilder sb = new StringBuilder(256);
+		sb.append("select SUM(size) from vfsrevision");
+		
+		List<Long> revisionsSize = dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), Long.class)
+				.getResultList();
+		
+		Long size = revisionsSize == null || revisionsSize.isEmpty() ? Long.valueOf(0) : revisionsSize.get(0);		
+		
+		dbInstance.commitAndCloseSession();
+		
+		VFSStatsVO vo = new VFSStatsVO(size);
+		
+		return Response.ok(vo).build();
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/restapi/system/vo/VFSStatsVO.java b/src/main/java/org/olat/restapi/system/vo/VFSStatsVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd8f7dae93478fe9e0a51f726066909c2b4d3dd8
--- /dev/null
+++ b/src/main/java/org/olat/restapi/system/vo/VFSStatsVO.java
@@ -0,0 +1,61 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.restapi.system.vo;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+
+
+/**
+ * 
+ * <h3>Description:</h3>
+ * 
+ * 
+ * Initial Date:  21 juin 2010 <br>
+ * @author srosse, stephane.rosse@frentix.com, www.frentix.com
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement(name = "vfsStatsVO")
+public class VFSStatsVO {
+	
+	@XmlAttribute(name="revisionsSize", required=true)
+	private long revisionsSize;
+	
+	public VFSStatsVO() {
+		//make JAXB happy
+	}
+	
+	public VFSStatsVO(long revisionsSize) {
+		this.revisionsSize = revisionsSize;
+	}
+
+	public long getRevisionsSize() {
+		return revisionsSize;
+	}
+
+	@Override
+	public String toString() {
+		StringBuilder sb = new StringBuilder();
+		sb.append("revisionsSize=").append(getRevisionsSize());
+		return sb.toString();
+	}
+}
diff --git a/src/main/webapp/static/movie/mediaelementjs/features/markers/o_markers.js b/src/main/webapp/static/movie/mediaelementjs/features/markers/o_markers.js
index 92e52115d8af31913e892f8f0b52f63a3f086132..503253f93da515c2d08cd6c4710ac4be0b8db42e 100644
--- a/src/main/webapp/static/movie/mediaelementjs/features/markers/o_markers.js
+++ b/src/main/webapp/static/movie/mediaelementjs/features/markers/o_markers.js
@@ -41,6 +41,9 @@ Object.assign(MediaElementPlayer.prototype, {
 		media.addEventListener('durationchange', function () {
 			player.setmarkers(controls);
 		});
+		media.addEventListener('loadedmetadata', function () {// for external video like YouTube
+			player.setmarkers(controls);
+		});
 		media.addEventListener('timeupdate', function () {
 			currentPos = Math.floor(media.currentTime);
 			if (lastPlayPos > currentPos) {
diff --git a/src/test/java/org/olat/core/commons/services/vfs/manager/VFSRevisionDAOTest.java b/src/test/java/org/olat/core/commons/services/vfs/manager/VFSRevisionDAOTest.java
index 70d10ee3fe0e9bde0bf67b0584534f6595837381..24be32b4ab009a1eb75526ee8839af5da3f33b75 100644
--- a/src/test/java/org/olat/core/commons/services/vfs/manager/VFSRevisionDAOTest.java
+++ b/src/test/java/org/olat/core/commons/services/vfs/manager/VFSRevisionDAOTest.java
@@ -228,15 +228,15 @@ public class VFSRevisionDAOTest extends OlatTestCase {
 		Identity author = JunitTestHelper.createAndPersistIdentityAsRndUser("rev-1");
 		VFSMetadata metadata1 = vfsMetadataDao.createMetadata(UUID.randomUUID().toString(), "test/revs", "text1.txt",
 				new Date(), 10l, false, "file:///text.tx", "file", null);
-		VFSRevision revision1 = revisionDao.createRevision(author, "._oo_vr_1_text.txt", 1, 25l, new Date(), "A comment", metadata1);
+		VFSRevision revision1 = revisionDao.createRevision(author, "._oo_vr_1_text.txt", 1, 25l, Date.from(ZonedDateTime.now().minusMinutes(5).toInstant()), "A comment", metadata1);
 		dbInstance.commitAndCloseSession();
 		VFSMetadata metadata2 = vfsMetadataDao.createMetadata(UUID.randomUUID().toString(), "test/revs", "text2.txt",
 				new Date(), 10l, false, "file:///text.tx", "file", null);
-		VFSRevision revision2 = revisionDao.createRevision(author, "._oo_vr_2_text.txt", 1, 25l, new Date(), "A comment", metadata2);
+		VFSRevision revision2 = revisionDao.createRevision(author, "._oo_vr_2_text.txt", 1, 25l, Date.from(ZonedDateTime.now().minusMinutes(5).toInstant()), "A comment", metadata2);
 		dbInstance.commitAndCloseSession();
 		VFSMetadata metadata3 = vfsMetadataDao.createMetadata(UUID.randomUUID().toString(), "test/revs", "text3.txt",
 				new Date(), 10l, false, "file:///text.tx", "file", null);
-		VFSRevision revision3 = revisionDao.createRevision(author, "._oo_vr_3_text.txt", 1, 25l, new Date(), "A comment", metadata3);
+		VFSRevision revision3 = revisionDao.createRevision(author, "._oo_vr_3_text.txt", 1, 25l, Date.from(ZonedDateTime.now().minusMinutes(5).toInstant()), "A comment", metadata3);
 		dbInstance.commitAndCloseSession();
 		
 		int maxResult = 100;
diff --git a/src/test/java/org/olat/restapi/SystemTest.java b/src/test/java/org/olat/restapi/SystemTest.java
index 60007f5f849792681b9717d6a3660da937685a6d..7bb55b463cc999ca5b648c66372b6d1e711bd2e7 100644
--- a/src/test/java/org/olat/restapi/SystemTest.java
+++ b/src/test/java/org/olat/restapi/SystemTest.java
@@ -36,17 +36,18 @@ import org.olat.restapi.system.vo.MemoryStatisticsVO;
 import org.olat.restapi.system.vo.MemoryVO;
 import org.olat.restapi.system.vo.MonitoringInfosVO;
 import org.olat.restapi.system.vo.OpenOLATStatisticsVO;
-import org.olat.restapi.system.vo.StatusVO;
 import org.olat.restapi.system.vo.ReleaseInfosVO;
 import org.olat.restapi.system.vo.RepositoryStatisticsVO;
 import org.olat.restapi.system.vo.RuntimeStatisticsVO;
 import org.olat.restapi.system.vo.SessionsVO;
+import org.olat.restapi.system.vo.StatusVO;
 import org.olat.restapi.system.vo.TasksVO;
 import org.olat.restapi.system.vo.ThreadStatisticsVO;
 import org.olat.restapi.system.vo.ThreadVO;
 import org.olat.restapi.system.vo.ThreadVOes;
 import org.olat.restapi.system.vo.ThreadsVO;
 import org.olat.restapi.system.vo.UserStatisticsVO;
+import org.olat.restapi.system.vo.VFSStatsVO;
 import org.olat.test.OlatRestTestCase;
 
 /**
@@ -427,4 +428,17 @@ public class SystemTest extends OlatRestTestCase {
 
 		conn.shutdown();	
 	}
+	
+	@Test
+	public void testVFSStats() throws IOException, URISyntaxException {
+		RestConnection conn = new RestConnection();
+		assertTrue(conn.login("administrator", "openolat"));
+		
+		URI systemUri = conn.getContextURI().path("system").path("monitoring").path("revisionsSize").build();
+		VFSStatsVO revisionsInfos = conn.get(systemUri, VFSStatsVO.class);
+		assertNotNull(revisionsInfos);
+		assertNotNull(revisionsInfos.getRevisionsSize());
+		
+		conn.shutdown();
+	}
 }