diff --git a/src/main/java/org/olat/ims/qti/QTIModule.java b/src/main/java/org/olat/ims/qti/QTIModule.java
index 22dc85c203c407fbfd28e174dc46ffb568649465..b3896f8e5da9fe79f8e8b408ea09358863689c32 100644
--- a/src/main/java/org/olat/ims/qti/QTIModule.java
+++ b/src/main/java/org/olat/ims/qti/QTIModule.java
@@ -58,7 +58,7 @@ public class QTIModule extends AbstractOLATModule {
 	@Override
 	public void init() {
 		for (RepositoryHandler qtiRepositoryHandler : qtiRepositoryHandlers) {
-			RepositoryHandlerFactory.registerHandler(qtiRepositoryHandler, 11);
+			RepositoryHandlerFactory.registerHandler(qtiRepositoryHandler, 10);
 		}
 	}
 
diff --git a/src/main/java/org/olat/repository/handlers/RepositoryHandlerFactory.java b/src/main/java/org/olat/repository/handlers/RepositoryHandlerFactory.java
index e91f68d9c550ee6142016bffbcc737fcd84fe29c..2a994e41cbc6abcf16697346ad733a2524133348 100644
--- a/src/main/java/org/olat/repository/handlers/RepositoryHandlerFactory.java
+++ b/src/main/java/org/olat/repository/handlers/RepositoryHandlerFactory.java
@@ -64,15 +64,20 @@ public class RepositoryHandlerFactory {
 		handlerMap = new HashMap<String, RepositoryHandler>(21);
 		handlerList = new ArrayList<OrderedRepositoryHandler>(21);
 
+		// 0-9 Most important resources = 0-9
 		registerHandler(new CourseHandler(), 0);
-		registerHandler(new SCORMCPHandler(), 10);
-		registerHandler(new ImsCPHandler(), 20);
-		registerHandler(new SharedFolderHandler(), 21);
-		registerHandler(new WikiHandler(), 21);
-		registerHandler(new PodcastHandler(), 22);
-		registerHandler(new BlogHandler(), 23);
-		registerHandler(new GlossaryHandler(), 24);
-		registerHandler(new PortfolioHandler(), 25);
+		// 10-19 Assessment modules
+		// 20-29 Content modules
+		registerHandler(new SCORMCPHandler(), 20);
+		registerHandler(new ImsCPHandler(), 21);
+		registerHandler(new WikiHandler(), 22);
+		// 30-39 Interactive modules
+		registerHandler(new PodcastHandler(), 31);
+		registerHandler(new BlogHandler(), 32);
+		// 40-49 Supporting resources
+		registerHandler(new SharedFolderHandler(), 40);
+		registerHandler(new GlossaryHandler(), 41);
+		registerHandler(new PortfolioHandler(), 42);
 		
 		registerHandler(new WebDocumentHandler(DocFileResource.TYPE_NAME), 10001);
 		registerHandler(new WebDocumentHandler(XlsFileResource.TYPE_NAME), 10002);
diff --git a/src/main/java/org/olat/repository/ui/author/AuthorListController.java b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
index 37a8d479d33613f133240e566250d7a88d0dde3d..b30462b02d440c52e2d87870f8bbd7c30dc4032c 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
@@ -20,7 +20,6 @@
 package org.olat.repository.ui.author;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
@@ -37,6 +36,7 @@ import org.olat.core.commons.services.mark.MarkManager;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.dropdown.Dropdown;
+import org.olat.core.gui.components.dropdown.Dropdown.Spacer;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
@@ -182,13 +182,21 @@ public class AuthorListController extends FormBasicController implements Activat
 			importLink.setIconLeftCSS("o_icon o_icon_import");
 			stackPanel.addTool(importLink, Align.left);
 			
-			Collection<String> types = repositoryHandlerFactory.getSupportedTypes();
+			List<OrderedRepositoryHandler> handlers = repositoryHandlerFactory.getOrderRepositoryHandlers();
 			createDropdown = new Dropdown("cmd.create.ressource", "cmd.create.ressource", false, getTranslator());
 			createDropdown.setElementCssClass("o_sel_author_create");
 			createDropdown.setIconCSS("o_icon o_icon_add");
-			for(String type:types) {
-				RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(type);
+			int lastGroup = 0;
+			for(OrderedRepositoryHandler orderedHandler:handlers) {
+				RepositoryHandler handler = orderedHandler.getHandler();
+				
 				if(handler != null && handler.isCreate()) {
+					// for each 10-group, crate a separator
+					int group = orderedHandler.getOrder() / 10;
+					if (group > lastGroup) {
+						createDropdown.addComponent(new Spacer("spacer" + orderedHandler.getOrder()));
+						lastGroup = group;
+					}
 					addCreateLink(handler, createDropdown);
 				}
 			}
@@ -285,7 +293,14 @@ public class AuthorListController extends FormBasicController implements Activat
 	private List<FlexiTableFilter> getFilters() {
 		List<OrderedRepositoryHandler> supportedHandlers = repositoryHandlerFactory.getOrderRepositoryHandlers();
 		List<FlexiTableFilter> resources = new ArrayList<>(supportedHandlers.size() + 1);
+		int lastGroup = 0;
 		for(OrderedRepositoryHandler handler:supportedHandlers) {
+			// for each 10-group, crate a separator
+			int group = handler.getOrder() / 10;
+			if (group > lastGroup) {
+				resources.add(FlexiTableFilter.SPACER);
+				lastGroup = group;
+			}
 			String type = handler.getHandler().getSupportedType();
 			String inconLeftCss = RepositoyUIFactory.getIconCssClass(type);
 			resources.add(new FlexiTableFilter(translate(type), type, inconLeftCss));