diff --git a/src/test/java/org/olat/repository/FunctionalCatalogTest.java b/src/test/java/org/olat/repository/FunctionalCatalogTest.java
index 802f812d8459f1f878b0f723fbfaee9328834b8d..10969056fccd8ab96718272b32a4e61ddd5129c6 100644
--- a/src/test/java/org/olat/repository/FunctionalCatalogTest.java
+++ b/src/test/java/org/olat/repository/FunctionalCatalogTest.java
@@ -31,7 +31,6 @@ import org.jboss.arquillian.test.api.ArquillianResource;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.olat.restapi.support.vo.CourseVO;
@@ -104,7 +103,6 @@ public class FunctionalCatalogTest {
 		}
 	}
 
-	@Ignore
 	@Test
 	@RunAsClient
 	public void checkCreateSubcategory() throws URISyntaxException, IOException{
@@ -147,14 +145,14 @@ public class FunctionalCatalogTest {
 			Assert.assertTrue(functionalCourseUtil.openCourseEditor(browser));
 			
 			/* choose wiki */
-			String currentPath = SUBCATEGORY_PATHS[i];
+			String currentPath = SUBCATECORY_PATHS_INCLUDING_RESOURCE[i];
 			String currentName = currentPath.substring(currentPath.lastIndexOf('/') + 1);
 			
 			Assert.assertTrue(functionalCourseUtil.createCourseNode(browser, CourseNodeAlias.WIKI, "wiki", currentName + " wiki", "colaborative " + currentName + " wiki", 0));
 			Assert.assertTrue(functionalCourseUtil.chooseWiki(browser, wikiVO[i].getKey()));
 			
 			/* publish course */
-			Assert.assertTrue(functionalCourseUtil.publishEntireCourse(browser, null, SUBCATEGORY_PATHS[i]));
+			Assert.assertTrue(functionalCourseUtil.publishEntireCourse(browser, null, currentPath));
 			
 			/* close course */
 			Assert.assertTrue(functionalCourseUtil.closeActiveTab(browser));
@@ -170,30 +168,57 @@ public class FunctionalCatalogTest {
 		
 		/* verify resources */
 		for(int i = 0; i < COURSES; i++){
+			
+			/* click on catalog root */
+			StringBuffer selectorBuffer = new StringBuffer();
+			
+			selectorBuffer.append("xpath=//div[contains(@class, '")
+			.append(functionalRepositorySiteUtil.getCatalogNavigationCss())
+			.append("')]//a");
+			
+			if(browser.isElementPresent(selectorBuffer.toString())){
+				browser.click(selectorBuffer.toString());
+			}
+			
+			/* navigate tree */
 			String[] selectors = functionalRepositorySiteUtil.createCatalogSelectors(SUBCATECORY_PATHS_INCLUDING_RESOURCE[i]);
 			
 			for(String currentSelector: selectors){
-				/* click first course and retrieve business path */
-				StringBuffer selectorBuffer = new StringBuffer();
-				
-				selectorBuffer.append("xpath=//a[contains(@class, '")
-				.append(functionalRepositorySiteUtil.getCourseModuleIconCss())
-				.append("')]");
-				
-				browser.click(selectorBuffer.toString());
-				
+				functionalUtil.waitForPageToLoadElement(browser, currentSelector.toString());
+				browser.click(currentSelector);
+			}
+			
+			functionalUtil.waitForPageToLoad(browser);
+			
+			/* click first course and retrieve business path */
+			selectorBuffer = new StringBuffer();
+			
+			selectorBuffer.append("xpath=(//a[contains(@class, '")
+			.append(functionalRepositorySiteUtil.getCourseModuleIconCss())
+			.append("')])");
+			
+			/* create business path and try to find it */
+			String businessPath0 = functionalUtil.getDeploymentPath() + "/url/RepositoryEntry/" + courseVO[i].getRepoEntryKey();
+			boolean found = false;
+			
+			for(int j = 0; j < browser.getXpathCount(selectorBuffer.toString().substring(6)).intValue(); j++){
+				functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString());
+			
+				browser.click(selectorBuffer.toString() + "[" + (j + 1) + "]");
+			
 				functionalUtil.waitForPageToLoad(browser);
-				
-				String businessPath0 = functionalUtil.currentBusinessPath(browser);
-				
-				/* open course and retrieve business path */
-				functionalRepositorySiteUtil.openCourse(browser, courseVO[i].getRepoEntryKey());
-				
+			
 				String businessPath1 = functionalUtil.currentBusinessPath(browser);
+				functionalCourseUtil.closeActiveTab(browser);
 				
-				/* assert collected business paths to be equal */
-				Assert.assertEquals(businessPath1, businessPath0);
+				if(businessPath1.contains(businessPath0)){
+					found = true;
+					break;
+				}
 			}
+			
+			/* assert collected business paths to be equal */
+			Assert.assertTrue(found);
 		}
 	}
 	
diff --git a/src/test/java/org/olat/util/FunctionalCourseUtil.java b/src/test/java/org/olat/util/FunctionalCourseUtil.java
index fe5e2d9a36e7c40f9d183f04cdd6c1a464eebff0..64370bd3788ad56b428093ee146e80b27332609a 100644
--- a/src/test/java/org/olat/util/FunctionalCourseUtil.java
+++ b/src/test/java/org/olat/util/FunctionalCourseUtil.java
@@ -54,8 +54,8 @@ public class FunctionalCourseUtil {
 	public final static String ADD_TO_CATALOG_YES_VALUE = "yes";
 	public final static String ADD_TO_CATALOG_NO_VALUE = "no";
 	public final static String CATALOG_SUBCATEGORY_ICON_CSS = "o_catalog_cat_icon";
-	public final static String ADD_TO_CATALOG_CSS = null; //TODO:JK: add css class
-	public final static String CATALOG_CSS = null; //TODO:JK: add css class
+	public final static String ADD_TO_CATALOG_CSS = "o_sel_publish_add_to_catalog";
+	public final static String CATALOG_CSS = "o_sel_catalog_chooser_tree";
 	
 	public final static String COURSE_EDITOR_INSERT_CONTENT_CSS = "b_toolbox_content";
 	public final static String CREATE_COURSE_NODE_TARGET_POSITION_ITEM_CSS = "b_selectiontree_item";
@@ -699,7 +699,7 @@ public class FunctionalCourseUtil {
 		
 		selectorBuffer.append("xpath=//li//a[contains(@class, '")
 		.append(functionalUtil.getTreeNodeAnchorCss())
-		.append("')]//a");
+		.append("')]");
 		
 		selectors.add(selectorBuffer.toString());
 		
@@ -707,10 +707,10 @@ public class FunctionalCourseUtil {
 			StringBuffer selector = new StringBuffer();
 			
 			selector.append("xpath=//li//a[contains(@class, '")
-			.append(functionalUtil.getTreeNodeAnchorCss())
-			.append("')]//a//span[text()='")
+			.append(functionalUtil.getTreeNodeCss())
+			.append("')]//span[text()='")
 			.append(categoryMatcher.group(1))
-			.append("')]/..");
+			.append("']/..");
 			
 			selectors.add(selector.toString());
 		}
@@ -747,6 +747,7 @@ public class FunctionalCourseUtil {
 		functionalUtil.waitForPageToLoadElement(browser, selectorBuffer.toString());
 		browser.click(selectorBuffer.toString());
 		
+		functionalUtil.waitForPageToLoad(browser);
 		functionalUtil.clickWizardNext(browser);
 		
 		/* access options */
@@ -777,7 +778,12 @@ public class FunctionalCourseUtil {
 			
 			for(String catalogSelector: catalogSelectors){
 				functionalUtil.waitForPageToLoadElement(browser, catalogSelector);
-				browser.click(catalogSelector);
+
+				if(browser.isElementPresent(catalogSelector + "/../img[contains(@class, 'x-tree-elbow-end-plus')]")){
+					browser.doubleClick(catalogSelector);
+				}else{
+					browser.click(catalogSelector);
+				}
 			}
 			
 			/* click choose */