diff --git a/src/main/java/org/olat/modules/taxonomy/ui/IdentityCompetencesController.java b/src/main/java/org/olat/modules/taxonomy/ui/IdentityCompetencesController.java
index d9950048b27a6aa502172e8fb9a1088d02287241..dd2498f33600a8e4cf6d2458b3d19a2ab15bd271 100644
--- a/src/main/java/org/olat/modules/taxonomy/ui/IdentityCompetencesController.java
+++ b/src/main/java/org/olat/modules/taxonomy/ui/IdentityCompetencesController.java
@@ -203,24 +203,28 @@ public class IdentityCompetencesController extends FormBasicController implement
 	}
 	
 	private void doAddTaxonomyLevelsAsCompetence(TaxonomyLevel selectedLevel, TaxonomyCompetenceTypes competenceType) {
-		boolean found = false;
-		List<TaxonomyCompetence> currentCompetences = taxonomyService.getTaxonomyCompetences(assessedIdentity, competenceType);
-		for(TaxonomyCompetence currentCompetence:currentCompetences) {
-			if(selectedLevel.equals(currentCompetence.getTaxonomyLevel())) {
-				found = true;
+		if(selectedLevel == null) {
+			showWarning("warning.atleastone.level.competence");
+		} else {
+			boolean found = false;
+			List<TaxonomyCompetence> currentCompetences = taxonomyService.getTaxonomyCompetences(assessedIdentity, competenceType);
+			for(TaxonomyCompetence currentCompetence:currentCompetences) {
+				if(selectedLevel.equals(currentCompetence.getTaxonomyLevel())) {
+					found = true;
+				}
 			}
+			
+			if(!found) {
+				TaxonomyLevel taxonomyLevel = taxonomyService.getTaxonomyLevel(selectedLevel);
+				Taxonomy taxonomy = taxonomyLevel.getTaxonomy();
+				TaxonomyCompetence competence = taxonomyService.addTaxonomyLevelCompetences(taxonomyLevel, assessedIdentity, competenceType, null);
+				String after = taxonomyService.toAuditXml(competence);
+				taxonomyService.auditLog(TaxonomyCompetenceAuditLog.Action.addCompetence, null, after, null, taxonomy, competence, assessedIdentity, getIdentity());
+			}
+			
+			loadModel();
+			tableEl.reset(true, true, true);
 		}
-		
-		if(!found) {
-			TaxonomyLevel taxonomyLevel = taxonomyService.getTaxonomyLevel(selectedLevel);
-			Taxonomy taxonomy = taxonomyLevel.getTaxonomy();
-			TaxonomyCompetence competence = taxonomyService.addTaxonomyLevelCompetences(taxonomyLevel, assessedIdentity, competenceType, null);
-			String after = taxonomyService.toAuditXml(competence);
-			taxonomyService.auditLog(TaxonomyCompetenceAuditLog.Action.addCompetence, null, after, null, taxonomy, competence, assessedIdentity, getIdentity());
-		}
-		
-		loadModel();
-		tableEl.reset(true, true, true);
 	}
 	
 	private void doConfirmRemove(UserRequest ureq, IdentityCompetenceRow row) {
diff --git a/src/main/java/org/olat/modules/taxonomy/ui/SelectTaxonomyLevelController.java b/src/main/java/org/olat/modules/taxonomy/ui/SelectTaxonomyLevelController.java
index 8b6202a634c5945371492b08a0f7c106cca2aed9..885ce45261dc23482928f0b294ad347c268f08c5 100644
--- a/src/main/java/org/olat/modules/taxonomy/ui/SelectTaxonomyLevelController.java
+++ b/src/main/java/org/olat/modules/taxonomy/ui/SelectTaxonomyLevelController.java
@@ -73,6 +73,7 @@ public class SelectTaxonomyLevelController extends FormBasicController {
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		taxonomyTreesModel = new GenericTreeModel();
 		taxonomyTreesEl = uifactory.addTreeMultiselect("taxonomy", null, formLayout, taxonomyTreesModel, this);
+		taxonomyTreesEl.setRootVisible(false);
 
 		uifactory.addFormCancelButton("cancel", formLayout, ureq, getWindowControl());
 		uifactory.addFormSubmitButton("ok", formLayout);
diff --git a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties
index 66bb6dbbb99cd9b41188c797bc4d3229a345bd0d..99f760944e6cc20ce0d493be7dc925f2591426ce 100644
--- a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_de.properties
@@ -130,5 +130,6 @@ teach=Dozieren
 tools=$\:table.header.actions
 type.taxonomy.level=Ebenentyp zuweisen
 warning.atleastone.level=Sie m\u00FCssen mindestens eine Ebene w\u00E4hlen dass Sie editieren d\u00FCrfen.
+warning.atleastone.level.competence=Sie m\u00FCssen mindestens eine Ebene w\u00E4hlen.
 warning.delete.level=Die Ebene darf nicht gel\u00F6scht werden. Sie wird noch benutzt.
 warning.delete.level.type=Der Ebenentype wurde nicht gel\u00F6scht. Er ist noch benutzt.
diff --git a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties
index bed9a6afcc22748c414f04941a2f229640a9ea75..e48fce6efaa5801c924d074d236b3e1317694b27 100644
--- a/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/taxonomy/ui/_i18n/LocalStrings_en.properties
@@ -129,5 +129,6 @@ teach=Teach
 tools=$\:table.header.actions
 type.taxonomy.level=Assign level type
 warning.atleastone.level=You must at least one taxonomy level you can edit.
+warning.atleastone.level.competence=You must at least one taxonomy level.
 warning.delete.level=The level cannot be deleted because it is still in use.
 warning.delete.level.type=The level type "{0}" was not deleted because it is still in use.