diff --git a/src/main/java/org/olat/catalog/CatalogManager.java b/src/main/java/org/olat/catalog/CatalogManager.java
index 0968273ab6b5e9650583ddd764b86b17e8d75f90..dcc979570c03220bd698b8ea470488ebc6551eb5 100644
--- a/src/main/java/org/olat/catalog/CatalogManager.java
+++ b/src/main/java/org/olat/catalog/CatalogManager.java
@@ -26,6 +26,7 @@
 package org.olat.catalog;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
@@ -142,6 +143,10 @@ public class CatalogManager extends BasicManager implements UserDataDeletable, I
 	 * @return
 	 */
 	public List<CatalogEntry> getChildrenOf(CatalogEntry ce, int firstResult, int maxResults, CatalogEntry.OrderBy orderBy, boolean asc) {
+		if(ce == null) {// nothing have no children
+			return Collections.emptyList();
+		}
+		
 		StringBuilder sb = new StringBuilder();
 		sb.append("select cei from ").append(CatalogEntryImpl.class.getName()).append(" as cei ")
 		  .append(" inner join fetch cei.ownerGroup as ownerGroup")
diff --git a/src/main/java/org/olat/catalog/ui/CatalogTreeModel.java b/src/main/java/org/olat/catalog/ui/CatalogTreeModel.java
index 626eb5027d55afbeed08eac5002f33024b92db1a..d6c55ac93914e8cf8b302b7114001bb7b7984425 100644
--- a/src/main/java/org/olat/catalog/ui/CatalogTreeModel.java
+++ b/src/main/java/org/olat/catalog/ui/CatalogTreeModel.java
@@ -128,6 +128,8 @@ public class CatalogTreeModel extends GenericTreeModel {
 				} else {
 					addMissingNodes(entry);
 				}
+			} else {//it's the root
+				node = buildNode(entry);
 			}
 		}
 		return node;
diff --git a/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java b/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java
index 9c1c113a51958e36d2447e2cd76a5caf14f1bac7..18f4b54dd51e3381becfbfa534d50711689b1977 100644
--- a/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java
@@ -144,7 +144,7 @@ public class SelectionTreeRenderer implements ComponentRenderer {
 		}
 		else target.append(internalTranslator.translate("selectiontree.noentries"));
 		target.append("<br /><br />");
-		if (atLeastOneIsAccessible) {
+		if (atLeastOneIsAccessible && tree.getFormButtonKey() != null) {
 			target.append("<button type=\"submit\" class=\"b_button o_sel_submit_selection\" name=\"" + Form.SUBMIT_IDENTIFICATION + "\" value=\"");
 			target.append(StringEscapeUtils.escapeHtml(translator.translate(tree.getFormButtonKey())));
 			if (!tree.isAllowEmptySelection()) {