diff --git a/src/main/java/de/bps/course/nodes/den/DENManager.java b/src/main/java/de/bps/course/nodes/den/DENManager.java
index 39d4a9dfa07bdbefb8217c8380a30348408e3004..ca08e4b90b49bdeb9f4debdd0532829712337bce 100644
--- a/src/main/java/de/bps/course/nodes/den/DENManager.java
+++ b/src/main/java/de/bps/course/nodes/den/DENManager.java
@@ -47,13 +47,15 @@ import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.UserConstants;
+import org.olat.core.id.context.BusinessControlFactory;
+import org.olat.core.id.context.ContextEntry;
 import org.olat.core.util.CodeHelper;
-import org.olat.core.util.WebappHelper;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.coordinate.SyncerExecutor;
 import org.olat.core.util.mail.ContactList;
 import org.olat.core.util.mail.ContactMessage;
 import org.olat.core.util.mail.MailTemplate;
+import org.olat.core.util.resource.OresHelper;
 import org.olat.course.CourseFactory;
 import org.olat.course.ICourse;
 import org.olat.course.nodes.CourseNodeFactory;
@@ -854,12 +856,16 @@ public class DENManager {
 	
 	private void createKalendarEventLinks(ICourse course, DENCourseNode courseNode, KalendarEvent event) {
 		List kalendarEventLinks = event.getKalendarEventLinks();
-		StringBuilder extLink = new StringBuilder();
-		extLink.append(WebappHelper.getContextRoot()).append("/auth/repo/go?rid=");
 		RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(course, true);
-		extLink.append(re.getKey()).append("&par=").append(courseNode.getIdent());
+
+		OLATResourceable oresNode = OresHelper.createOLATResourceableInstance("CourseNode", Long.valueOf(courseNode.getIdent()));
+		List<ContextEntry> ces = new ArrayList<ContextEntry>();
+		ces.add(BusinessControlFactory.getInstance().createContextEntry(re));
+		ces.add(BusinessControlFactory.getInstance().createContextEntry(oresNode));
+		String extLink = BusinessControlFactory.getInstance().getAsURIString(ces, false);
+
 		String iconCssClass = CourseNodeFactory.getInstance().getCourseNodeConfiguration(courseNode.getType()).getIconCSSClass();
-		KalendarEventLink link = new KalendarEventLink("COURSE", courseNode.getIdent(), courseNode.getShortTitle(), extLink.toString(), iconCssClass);
+		KalendarEventLink link = new KalendarEventLink("COURSE", courseNode.getIdent(), courseNode.getShortTitle(), extLink, iconCssClass);
 		kalendarEventLinks.clear();
 		kalendarEventLinks.add(link);
 	}
diff --git a/src/main/java/org/olat/bookmark/BookmarkManager.java b/src/main/java/org/olat/bookmark/BookmarkManager.java
index fb73b0e395f46624e64c0422a2494c6956a8daa6..4df68948153e930eb5d8dd268b82e00059cb3e56 100644
--- a/src/main/java/org/olat/bookmark/BookmarkManager.java
+++ b/src/main/java/org/olat/bookmark/BookmarkManager.java
@@ -54,7 +54,7 @@ public abstract class BookmarkManager extends BasicManager {
 	 * @param identity
 	 * @return a List of found bookmarks of given subject
 	 */
-	public abstract List findBookmarksByIdentity(Identity identity);
+	public abstract List<Bookmark> findBookmarksByIdentity(Identity identity);
 
 	/**
 	 * Finds bookmarks of a specific type for an identity
@@ -63,7 +63,7 @@ public abstract class BookmarkManager extends BasicManager {
 	 * @param type
 	 * @return list of bookmarks for this identity
 	 */
-	public abstract List findBookmarksByIdentity(Identity identity, String type);
+	public abstract List<Bookmark> findBookmarksByIdentity(Identity identity, String type);
 
 	/**
 	 * @param changedBookmark
diff --git a/src/main/java/org/olat/catalog/CatalogBookmarkHandler.java b/src/main/java/org/olat/catalog/CatalogBookmarkHandler.java
index b99e319c16a7a7ca9b7fa73d291ab736e63c844a..ca80f3c77828b6b2c0690d2e5d5dd1f94982b047 100644
--- a/src/main/java/org/olat/catalog/CatalogBookmarkHandler.java
+++ b/src/main/java/org/olat/catalog/CatalogBookmarkHandler.java
@@ -19,6 +19,8 @@
  */
 package org.olat.catalog;
 
+import java.util.Collections;
+
 import org.olat.bookmark.Bookmark;
 import org.olat.bookmark.BookmarkHandler;
 import org.olat.bookmark.BookmarkManager;
@@ -26,6 +28,9 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.dtabs.DTabs;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.id.context.BusinessControlFactory;
+import org.olat.core.id.context.ContextEntry;
+import org.olat.core.util.resource.OresHelper;
 import org.olat.repository.site.RepositorySite;
 
 /**
@@ -63,8 +68,10 @@ public class CatalogBookmarkHandler implements BookmarkHandler {
 	public String createJumpInURL(Bookmark bookmark) {
 		OLATResourceable reores = BookmarkManager.getInstance().getLaunchOlatResourceable(bookmark);
 		// only create jump in urls for bookmarks of type catalog entry
-		if(reores.getResourceableTypeName().equals(CatalogManager.CATALOGENTRY)){			
-			return CatalogJumpInHandlerFactory.buildRepositoryDispatchURI(bookmark.getOlatreskey());
+		if(reores.getResourceableTypeName().equals(CatalogManager.CATALOGENTRY)){	
+			OLATResourceable ores = OresHelper.createOLATResourceableInstance(CatalogManager.CATALOGENTRY, bookmark.getOlatreskey());
+			ContextEntry ce = BusinessControlFactory.getInstance().createContextEntry(ores);
+			return BusinessControlFactory.getInstance().getAsURIString(Collections.singletonList(ce), false);
 		}
 		return null;
 	}
diff --git a/src/main/java/org/olat/catalog/CatalogJumpInHandlerFactory.java b/src/main/java/org/olat/catalog/CatalogJumpInHandlerFactory.java
index ddd9f11021c06cdde5adeb956f75a0ebe9d16c69..591babd0b1f94795b323ad0418c6e678b13f8944 100644
--- a/src/main/java/org/olat/catalog/CatalogJumpInHandlerFactory.java
+++ b/src/main/java/org/olat/catalog/CatalogJumpInHandlerFactory.java
@@ -19,15 +19,11 @@
  */
 package org.olat.catalog;
 
-import java.util.Locale;
-
-import org.olat.core.dispatcher.DispatcherAction;
 import org.olat.core.dispatcher.jumpin.JumpInHandlerFactory;
 import org.olat.core.dispatcher.jumpin.JumpInReceptionist;
 import org.olat.core.dispatcher.jumpin.JumpInResult;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.helpers.Settings;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.repository.site.RepositorySite;
@@ -44,44 +40,11 @@ import org.olat.repository.site.RepositorySite;
 public class CatalogJumpInHandlerFactory implements JumpInHandlerFactory {
 
 	public static final String CONST_CAID = "caid";
-	private static final String CONST_EXTLINK = "cata/go";
 
 	public JumpInReceptionist createJumpInHandler(UserRequest ureq) {
 		String catEntryId = ureq.getParameter(CONST_CAID);
 		return new CatalogJumpInReceptionist(catEntryId);
 	}
-
-	/**
-	 * Build a dispatch URI which a user can use to call re directly by entering
-	 * the dispatch URI into his/her browser location bar.
-	 * 
-	 * @param catEntryId The catalog entry key
-	 * @return Complete dispatch URI.
-	 */
-	public static String buildRepositoryDispatchURI(long catEntryId) {
-		StringBuffer sb = new StringBuffer();
-		sb.append(Settings.getServerContextPathURI()).append(DispatcherAction.PATH_AUTHENTICATED).append(CONST_EXTLINK).append("?").append(
-				CONST_CAID).append("=").append(catEntryId);
-		return sb.toString();
-	}
-
-	/**
-	 * Build a dispatch URI which a guest user can use to call re directly by
-	 * entering the dispatch URI into his/her browser location bar.
-	 * <p>
-	 * When displaying the URL in a HTML page, don't forget to format the URL with
-	 * Formatter.esc() because this URL contains & characters.
-	 * 
-	 * @param catEntryId The catalog entry key
-	 * @param loc The users language
-	 * @return Complete dispatch URI.
-	 */
-	public static String buildRepositoryDispatchGuestURI(long catEntryId, Locale loc) {
-		StringBuffer sb = new StringBuffer();
-		sb.append(buildRepositoryDispatchURI(catEntryId)).append("&guest=true&lang=").append(loc.toString());
-		return sb.toString();
-	}
-
 }
 
 /**
diff --git a/src/main/java/org/olat/core/dispatcher/DispatcherAction.java b/src/main/java/org/olat/core/dispatcher/DispatcherAction.java
index 9df9971e7add21f3f4c0a8d66a8777c1347c7248..71c33de88511d33774c8b2d7a9d9a30b9454eb8a 100644
--- a/src/main/java/org/olat/core/dispatcher/DispatcherAction.java
+++ b/src/main/java/org/olat/core/dispatcher/DispatcherAction.java
@@ -75,7 +75,6 @@ public class DispatcherAction implements Dispatcher {
 	private Map<String, Dispatcher> dispatchers;
 
 	// brasato::remove!!
-	// used by core.dispatcher.jumpin.JumpInManager.getJumpInUri
 	// ............used by BusinessGroupMainRunController
 	// ............used by DropboxScoringViewController
 	// used by olat.basesecurity.AuthHelper.doLogin
diff --git a/src/main/java/org/olat/core/dispatcher/jumpin/JumpInHandlerFactory.java b/src/main/java/org/olat/core/dispatcher/jumpin/JumpInHandlerFactory.java
index 04469d036f20857645cf372f78e7bfa7de6f22f1..5b6a629d1d0e850d9cd15d07264674e3513ffa95 100644
--- a/src/main/java/org/olat/core/dispatcher/jumpin/JumpInHandlerFactory.java
+++ b/src/main/java/org/olat/core/dispatcher/jumpin/JumpInHandlerFactory.java
@@ -33,6 +33,7 @@ import org.olat.core.gui.UserRequest;
  * Initial Date:  23.02.2005 <br>
  *
  * @author Felix Jost
+ * @deprecated Use business path instead
  */
 public interface JumpInHandlerFactory {
 	public JumpInReceptionist createJumpInHandler(UserRequest ureq);
diff --git a/src/main/java/org/olat/core/dispatcher/jumpin/JumpInManager.java b/src/main/java/org/olat/core/dispatcher/jumpin/JumpInManager.java
index 6920cd60a5cfe3fffb83a602606ba32e44e9c609..d86ff9e1470a108a7d1e28305350ace18c6959f2 100644
--- a/src/main/java/org/olat/core/dispatcher/jumpin/JumpInManager.java
+++ b/src/main/java/org/olat/core/dispatcher/jumpin/JumpInManager.java
@@ -45,6 +45,7 @@ import org.olat.core.util.servlets.URLEncoder;
  * Initial Date: 23.02.2005 <br>
  * 
  * @author Felix Jost
+ * @deprecated Use business path instead
  */
 public class JumpInManager  extends BasicManager {
 	private static JumpInManager INSTANCE;
diff --git a/src/main/java/org/olat/core/gui/components/Window.java b/src/main/java/org/olat/core/gui/components/Window.java
index 756c5b6caeca24cf25b15eeac7b8d19c73f1a2a0..8583faa5c00da2c59f886d9c56e579d8cac77dc9 100644
--- a/src/main/java/org/olat/core/gui/components/Window.java
+++ b/src/main/java/org/olat/core/gui/components/Window.java
@@ -426,11 +426,6 @@ public class Window extends Container {
 											long durationAfterHandleDirties = System.currentTimeMillis() - debug_start;
 											Tracing.logDebug("Perf-Test: Window durationAfterHandleDirties=" + durationAfterHandleDirties, Window.class);
 										}
-										//DUMP FOR EACH CLICK THE CURRENT JumpInPath -> for later usage and debugging.
-										//System.err.println("V^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^V");
-										WindowControl current = (WindowControl)wbackofficeImpl.getWindow().getAttribute("BUSPATH");
-										//System.err.println(current != null ? JumpInManager.getRestJumpInUri(current.getBusinessControl()) : "NONE");
-										//System.err.println("T^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^T");
 										wbackofficeImpl.fireCycleEvent(AFTER_INLINE_RENDERING);
 										if (co != null) { // see method handleDirties for the rare case of co == null even if there are dirty components;
 											wbackofficeImpl.sendCommandTo(co);
@@ -733,11 +728,6 @@ public class Window extends Container {
 						debugMsg.append("inl_comp:").append(diff).append(LOG_SEPARATOR);
 					}
 					
-					//DUMP FOR EACH CLICK THE CURRENT JumpInPath -> for later usage and debugging.
-					//System.err.println("VV^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^VV");
-					//WindowControl current = (WindowControl)wbackofficeImpl.getWindow().getAttribute("BUSPATH");
-					//System.err.println(current != null ? JumpInManager.getRestJumpInUri(current.getBusinessControl()) : "NONE");
-					//System.err.println("TT^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^TT");
 					wbackofficeImpl.fireCycleEvent(AFTER_INLINE_RENDERING);
 					ServletUtil.serveStringResource(request, response, result);
 					if (isDebugLog) {
diff --git a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
index 9d39b648c26a62b7a4c7aeb0c1e6ba621fba933f..a7641cbb606f0f67b85d232fc62a153bc438bead 100644
--- a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
+++ b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
@@ -339,7 +339,6 @@ public class BusinessControlFactory {
 		retVal.append(Settings.getServerContextPathURI())
 			.append("/url/");
 
-		//see code in JumpInManager, cannot be used, as it needs BusinessControl-Elements, not the path
 		String lastEntryString = null;
 		for (ContextEntry contextEntry : ceList) {
 			String ceStr = contextEntry != null ? contextEntry.toString() : "NULL_ENTRY";
@@ -412,7 +411,6 @@ public class BusinessControlFactory {
 		if(ceList == null || ceList.isEmpty()) return "";
 		
 		StringBuilder retVal = new StringBuilder();
-		//see code in JumpInManager, cannot be used, as it needs BusinessControl-Elements, not the path
 		for (ContextEntry contextEntry : ceList) {
 			String ceStr = contextEntry != null ? contextEntry.toString() : "NULL_ENTRY";
 			if(ceStr.startsWith("[path")) {
diff --git a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java
index 258c73bd4bcb2228bbabe40a9972fcdbbbe1dfaf..c45d4b57e1f977df39919a9482b513a4e8deac49 100644
--- a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java
+++ b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java
@@ -27,7 +27,6 @@ package org.olat.course.nodes.ta;
 
 import java.io.File;
 import java.util.List;
-import java.util.Locale;
 
 import org.apache.velocity.VelocityContext;
 import org.olat.admin.quota.QuotaConstants;
@@ -53,10 +52,13 @@ import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.gui.media.FileMediaResource;
 import org.olat.core.id.Identity;
+import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.UserConstants;
+import org.olat.core.id.context.BusinessControl;
+import org.olat.core.id.context.BusinessControlFactory;
+import org.olat.core.id.context.ContextEntry;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
-import org.olat.core.util.i18n.I18nManager;
 import org.olat.core.util.mail.MailContext;
 import org.olat.core.util.mail.MailContextImpl;
 import org.olat.core.util.mail.MailTemplate;
@@ -277,9 +279,12 @@ public class DropboxScoringViewController extends BasicController {
 					Identity student = userCourseEnv.getIdentityEnvironment().getIdentity();
 					am.appendToUserNodeLog(node, coach, student, "FILE UPLOADED: " + folderEvent.getFilename());
 					String toMail = student.getUser().getProperty(UserConstants.EMAIL, ureq.getLocale());
-					Locale locale = I18nManager.getInstance().getLocaleOrDefault(student.getUser().getPreferences().getLanguage());
-					String nodeUrl = new URLEncoder().encode("[" + OresHelper.calculateTypeName(CourseNode.class) + ":" + node.getIdent() + "]");
-					String link = JumpInManager.getJumpInUri(this.getWindowControl().getBusinessControl()) + nodeUrl;
+					
+					OLATResourceable ores = OresHelper.createOLATResourceableInstance(CourseNode.class, Long.valueOf(node.getIdent()));
+					ContextEntry ce =		BusinessControlFactory.getInstance().createContextEntry(ores);
+					BusinessControl bc = BusinessControlFactory.getInstance().createBusinessControl(ce, getWindowControl().getBusinessControl());
+					String link = BusinessControlFactory.getInstance().getAsURIString(bc, true);
+					
 					log.debug("DEBUG : Returnbox notification email with link=" + link);
 					MailTemplate mailTempl = new MailTemplate(translate("returnbox.email.subject"), translate(
 							"returnbox.email.body", new String[] { userCourseEnv.getCourseEnvironment().getCourseTitle(), node.getShortTitle(),
diff --git a/src/main/java/org/olat/course/run/calendar/CourseLinkProviderController.java b/src/main/java/org/olat/course/run/calendar/CourseLinkProviderController.java
index e44698565dc438e6ef3b5efaa3bec033dbdf69ce..ce6ad4cf368e91cc6d883b3d8706f253c6d2db3d 100644
--- a/src/main/java/org/olat/course/run/calendar/CourseLinkProviderController.java
+++ b/src/main/java/org/olat/course/run/calendar/CourseLinkProviderController.java
@@ -25,6 +25,7 @@
 
 package org.olat.course.run.calendar;
 
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
@@ -46,10 +47,11 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.translator.PackageTranslator;
-import org.olat.core.helpers.Settings;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.id.context.BusinessControlFactory;
+import org.olat.core.id.context.ContextEntry;
 import org.olat.core.util.Util;
-import org.olat.course.CourseFactory;
+import org.olat.core.util.resource.OresHelper;
 import org.olat.course.ICourse;
 import org.olat.course.nodes.CourseNode;
 import org.olat.repository.RepositoryEntry;
@@ -115,12 +117,13 @@ public class CourseLinkProviderController extends BasicController implements Lin
 	private void rebuildKalendarEventLinks(TreeNode node, List selectedNodeIDs, List kalendarEventLinks) {
 		if (selectedNodeIDs.contains(node.getIdent())) {
 			// assemble link
-			StringBuilder extLink = new StringBuilder();
-			extLink.append(Settings.getServerContextPathURI()).append("/auth/repo/go?rid=");
-			ICourse course = CourseFactory.loadCourse(ores);
-			RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(course, true);
-			extLink.append(re.getKey()).append("&amp;par=").append(node.getIdent());
-			KalendarEventLink link = new KalendarEventLink(COURSE_LINK_PROVIDER, node.getIdent(), node.getTitle(), extLink.toString(), node.getIconCssClass());
+			RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(ores, true);
+			OLATResourceable oresNode = OresHelper.createOLATResourceableInstance("CourseNode", Long.valueOf(node.getIdent()));
+			List<ContextEntry> ces = new ArrayList<ContextEntry>();
+			ces.add(BusinessControlFactory.getInstance().createContextEntry(re));
+			ces.add(BusinessControlFactory.getInstance().createContextEntry(oresNode));
+			String extLink = BusinessControlFactory.getInstance().getAsURIString(ces, false);
+			KalendarEventLink link = new KalendarEventLink(COURSE_LINK_PROVIDER, node.getIdent(), node.getTitle(), extLink, node.getIconCssClass());
 			kalendarEventLinks.add(link);
 			node.setSelected(true);
 		}
diff --git a/src/main/java/org/olat/dispatcher/CatalogExportModuleDispatcher.java b/src/main/java/org/olat/dispatcher/CatalogExportModuleDispatcher.java
index 3046c15af9f075b472149208d9191417a1de80da..e5eec43e202e502de8b7cd5408a55f2c7ecc1cf7 100644
--- a/src/main/java/org/olat/dispatcher/CatalogExportModuleDispatcher.java
+++ b/src/main/java/org/olat/dispatcher/CatalogExportModuleDispatcher.java
@@ -33,6 +33,7 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.Collections;
 import java.util.GregorianCalendar;
 import java.util.Iterator;
 import java.util.List;
@@ -65,12 +66,13 @@ import org.olat.core.gui.render.StringOutput;
 import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
+import org.olat.core.id.context.BusinessControlFactory;
+import org.olat.core.id.context.ContextEntry;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
 import org.olat.core.util.Util;
 import org.olat.core.util.WebappHelper;
 import org.olat.core.util.i18n.I18nModule;
-import org.olat.repository.RepoJumpInHandlerFactory;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryIconRenderer;
 import org.olat.repository.controllers.RepositoryDetailsController;
@@ -271,13 +273,17 @@ public class CatalogExportModuleDispatcher implements Dispatcher {
 					
 					Element links = doc.createElement(XML_LINKS);													// links container
 					String tmp = "";
+					
+
+					ContextEntry contextEntry = BusinessControlFactory.getInstance().createContextEntry(re);
+					String url = BusinessControlFactory.getInstance().getAsURIString(Collections.singletonList(contextEntry), false);
 					switch (re.getAccess()) { // Attention! This uses the switch-case-fall-through mechanism!
 						case RepositoryEntry.ACC_USERS_GUESTS:		tmp = catalogExportTranslator.translate(NLS_TABLE_HEADER_ACCESS_GUEST) + tmp;
-																											appendLinkElement(doc, links, XML_LINKTYPE_GUEST, RepoJumpInHandlerFactory.buildRepositoryDispatchURI(re) + "&guest=true&amp;lang=" + I18nModule.getDefaultLocale().toString().toLowerCase());
+																											appendLinkElement(doc, links, XML_LINKTYPE_GUEST, url + "&guest=true&amp;lang=" + I18nModule.getDefaultLocale().toString().toLowerCase());
 						case RepositoryEntry.ACC_USERS:						tmp = catalogExportTranslator.translate(NLS_TABLE_HEADER_ACCESS_USER) + tmp;
 						case RepositoryEntry.ACC_OWNERS_AUTHORS:	tmp = catalogExportTranslator.translate(NLS_TABLE_HEADER_ACCESS_AUTHOR) + tmp;
 						case RepositoryEntry.ACC_OWNERS:					tmp = catalogExportTranslator.translate(NLS_TABLE_HEADER_ACCESS_OWNER) + tmp;
-																											appendLinkElement(doc, links, XML_LINKTYPE_LOGIN, RepoJumpInHandlerFactory.buildRepositoryDispatchURI(re));
+																											appendLinkElement(doc, links, XML_LINKTYPE_LOGIN, url);
 																											break;
 						default:																	tmp = catalogExportTranslator.translate(NLS_TABLE_HEADER_ACCESS_USER);
 																											break;
diff --git a/src/main/java/org/olat/group/BusinessGroupManagerImpl.java b/src/main/java/org/olat/group/BusinessGroupManagerImpl.java
index 6e5883466c189fce2178535c69550e68bb161ffe..dc45582bc75a236045ea2691e9221d3d9252c93a 100644
--- a/src/main/java/org/olat/group/BusinessGroupManagerImpl.java
+++ b/src/main/java/org/olat/group/BusinessGroupManagerImpl.java
@@ -100,7 +100,6 @@ import org.olat.instantMessaging.InstantMessagingModule;
 import org.olat.instantMessaging.syncservice.SyncSingleUserTask;
 import org.olat.notifications.NotificationsManagerImpl;
 import org.olat.properties.Property;
-import org.olat.repository.RepoJumpInHandlerFactory;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 import org.olat.resource.OLATResource;
@@ -1548,32 +1547,6 @@ public class BusinessGroupManagerImpl extends BasicManager implements BusinessGr
 	//////////////////
 	// Private Methods
 	//////////////////
-	/**
-	 * Get all learning resources associated with the context from the given group
-	 * and buid a direct jump url to this resources
-	 * @param group
-	 * @return String with direct-jumpin-urls
-	 */
-	private String getAllLearningResourcesFor(BusinessGroup group) {
-		// g
-		StringBuilder learningResources = new StringBuilder();
-		if (group.getGroupContext() != null) {
-			BGContextManager contextManager = BGContextManagerImpl.getInstance();
-			List repoEntries = contextManager.findRepositoryEntriesForBGContext(group.getGroupContext());
-			Iterator iter = repoEntries.iterator();
-			while (iter.hasNext()) {
-				RepositoryEntry entry = (RepositoryEntry) iter.next();
-				String title = entry.getDisplayname();
-				String url = RepoJumpInHandlerFactory.buildRepositoryDispatchURI(entry);
-				learningResources.append(title);
-				learningResources.append("\n");
-				learningResources.append(url);
-				learningResources.append("\n\n");
-			}
-		}
-		return learningResources.toString();
-  }
-
 	private void addToRoster(Identity ureqIdentity, Identity identity, BusinessGroup group, BGConfigFlags flags) {
 		if (flags.isEnabled(BGConfigFlags.BUDDYLIST)) {
 			if (InstantMessagingModule.isEnabled()) {
diff --git a/src/main/java/org/olat/group/ui/BGMailHelper.java b/src/main/java/org/olat/group/ui/BGMailHelper.java
index 2b07f7dc812bb65532f1963db9995de3308419ff..5cff4734b895d858e1cdade874bae9d9599d7227 100644
--- a/src/main/java/org/olat/group/ui/BGMailHelper.java
+++ b/src/main/java/org/olat/group/ui/BGMailHelper.java
@@ -43,6 +43,7 @@ import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.User;
 import org.olat.core.id.UserConstants;
+import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.core.util.Util;
 import org.olat.core.util.filter.FilterFactory;
 import org.olat.core.util.i18n.I18nManager;
@@ -191,12 +192,10 @@ public class BGMailHelper {
 		StringBuilder learningResources = new StringBuilder();
 		if (group.getGroupContext() != null) {
 			BGContextManager contextManager = BGContextManagerImpl.getInstance();
-			List repoEntries = contextManager.findRepositoryEntriesForBGContext(group.getGroupContext());
-			Iterator iter = repoEntries.iterator();
-			while (iter.hasNext()) {
-				RepositoryEntry entry = (RepositoryEntry) iter.next();
+			List<RepositoryEntry> repoEntries = contextManager.findRepositoryEntriesForBGContext(group.getGroupContext());
+			for (RepositoryEntry entry: repoEntries) {
 				String title = entry.getDisplayname();
-				String url = RepoJumpInHandlerFactory.buildRepositoryDispatchURI(entry);
+				String url = BusinessControlFactory.getInstance().getURLFromBusinessPathString("[RepositoryEntry:" + entry.getKey() + "]");
 				learningResources.append(title);
 				learningResources.append(" (");
 				learningResources.append(url);
diff --git a/src/main/java/org/olat/group/ui/management/BGManagementController.java b/src/main/java/org/olat/group/ui/management/BGManagementController.java
index 2d2254bb74a1dfdf71db2e982691533c1089a070..0ab121f8eecbf5e942df63e78168884806722585 100644
--- a/src/main/java/org/olat/group/ui/management/BGManagementController.java
+++ b/src/main/java/org/olat/group/ui/management/BGManagementController.java
@@ -40,7 +40,6 @@ import org.olat.basesecurity.SecurityGroup;
 import org.olat.collaboration.CollaborationTools;
 import org.olat.collaboration.CollaborationToolsFactory;
 import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
-import org.olat.core.dispatcher.jumpin.JumpInManager;
 import org.olat.core.gui.ShortName;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
@@ -72,6 +71,7 @@ import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.User;
 import org.olat.core.id.UserConstants;
+import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.core.logging.AssertException;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
 import org.olat.core.util.Util;
@@ -1267,7 +1267,7 @@ public class BGManagementController extends MainLayoutBasicController implements
 				}
 			}
 		}
-		String resourceUrl = JumpInManager.getJumpInUri(this.getWindowControl().getBusinessControl());
+		String resourceUrl = BusinessControlFactory.getInstance().getAsURIString(getWindowControl().getBusinessControl(), true);
 		cmsg.setSubject( businessGroupTranslator.translate("businessgroup.contact.subject", new String[]{ this.currentGroup.getName()} ) );
 		cmsg.setBodyText( businessGroupTranslator.translate("businessgroup.contact.bodytext", new String[]{ this.currentGroup.getName(), resourceUrl} ) );
 		CollaborationTools collabTools = CollaborationToolsFactory.getInstance().getOrCreateCollaborationTools(this.currentGroup);
diff --git a/src/main/java/org/olat/modules/webFeed/FeedViewHelper.java b/src/main/java/org/olat/modules/webFeed/FeedViewHelper.java
index 04c4bd11b542d7c9a71714e203e88149af029ea0..84f495855f03d74b49fda5c6400d78ea6bf4fd15 100644
--- a/src/main/java/org/olat/modules/webFeed/FeedViewHelper.java
+++ b/src/main/java/org/olat/modules/webFeed/FeedViewHelper.java
@@ -38,6 +38,7 @@ import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.filter.Filter;
 import org.olat.core.util.filter.FilterFactory;
+import org.olat.core.util.resource.OresHelper;
 import org.olat.course.CourseModule;
 import org.olat.modules.webFeed.dispatching.Path;
 import org.olat.modules.webFeed.managers.FeedManager;
@@ -46,7 +47,6 @@ import org.olat.modules.webFeed.models.Feed;
 import org.olat.modules.webFeed.models.Item;
 import org.olat.modules.webFeed.models.ItemPublishDateComparator;
 import org.olat.modules.webFeed.portfolio.LiveBlogArtefactHandler;
-import org.olat.repository.RepoJumpInHandlerFactory;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 import org.olat.resource.OLATResourceManager;
@@ -341,12 +341,17 @@ public class FeedViewHelper {
 		RepositoryManager resMgr = RepositoryManager.getInstance();
 		if (courseId != null && nodeId != null) {
 			OLATResourceable oresCourse = OLATResourceManager.getInstance().findResourceable(courseId, CourseModule.getCourseTypeName());
+			OLATResourceable oresNode = OresHelper.createOLATResourceableInstance("CourseNode", Long.valueOf(nodeId));
 			RepositoryEntry repositoryEntry = resMgr.lookupRepositoryEntry(oresCourse, false);
-			jumpInLink = RepoJumpInHandlerFactory.buildRepositoryDispatchURI(repositoryEntry, nodeId);
+			List<ContextEntry> ces = new ArrayList<ContextEntry>();
+			ces.add(BusinessControlFactory.getInstance().createContextEntry(repositoryEntry));
+			ces.add(BusinessControlFactory.getInstance().createContextEntry(oresNode));
+			jumpInLink = BusinessControlFactory.getInstance().getAsURIString(ces, false);
 		} else {
 			RepositoryEntry repositoryEntry = resMgr.lookupRepositoryEntry(feed, false);
 			if (repositoryEntry != null){
-				jumpInLink = RepoJumpInHandlerFactory.buildRepositoryDispatchURI(repositoryEntry);
+				ContextEntry ce = BusinessControlFactory.getInstance().createContextEntry(repositoryEntry);
+				jumpInLink = BusinessControlFactory.getInstance().getAsURIString(Collections.singletonList(ce), false);
 			} else {
 				// its a liveblog-feed
 				final BusinessControlFactory bCF = BusinessControlFactory.getInstance();
diff --git a/src/main/java/org/olat/notifications/SubscriptionJumpInHandlerFactory.java b/src/main/java/org/olat/notifications/SubscriptionJumpInHandlerFactory.java
index eff285704c4cdd27a5a7dce52168e6a8dfc4f9f8..e0469537bf93d9cb6b20df2fd7bba13127b27709 100644
--- a/src/main/java/org/olat/notifications/SubscriptionJumpInHandlerFactory.java
+++ b/src/main/java/org/olat/notifications/SubscriptionJumpInHandlerFactory.java
@@ -46,6 +46,7 @@ import org.olat.group.BusinessGroupManagerImpl;
  * Description: <br>
  * Initial Date: 23.02.2005 <br>
  * @author Felix Jost
+ * @deprecated Use business path instead
  */
 @Deprecated // not to be used after 6.3, all done with businessPaths. 
 //FIXME:FG:6.4 Delete Class and remove from olatextconfig.xml
diff --git a/src/main/java/org/olat/repository/RepoBookmarkHandler.java b/src/main/java/org/olat/repository/RepoBookmarkHandler.java
index 9a7c3ed8ae9bf9502cf12ab5e66673554810bd35..47295e9a147722249b85b1bf1b75f97c36d17a88 100644
--- a/src/main/java/org/olat/repository/RepoBookmarkHandler.java
+++ b/src/main/java/org/olat/repository/RepoBookmarkHandler.java
@@ -19,6 +19,8 @@
  */
 package org.olat.repository;
 
+import java.util.Collections;
+
 import org.olat.ControllerFactory;
 import org.olat.bookmark.Bookmark;
 import org.olat.bookmark.BookmarkHandler;
@@ -31,6 +33,8 @@ import org.olat.core.gui.control.generic.dtabs.DTab;
 import org.olat.core.gui.control.generic.dtabs.DTabs;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.id.context.BusinessControlFactory;
+import org.olat.core.id.context.ContextEntry;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.Util;
@@ -100,7 +104,9 @@ public class RepoBookmarkHandler implements BookmarkHandler {
 		RepositoryEntry re = rm.lookupRepositoryEntry(reores.getResourceableId());
 		// only create jump in urls for bookmarks of type repo entry
 		if (re != null) {
-			return RepoJumpInHandlerFactory.buildRepositoryDispatchURI(re);
+			ContextEntry ce = BusinessControlFactory.getInstance().createContextEntry(reores);
+			String url = BusinessControlFactory.getInstance().getAsURIString(Collections.singletonList(ce), false);
+			return url;
 		}
 		return null;
 	}
diff --git a/src/main/java/org/olat/repository/RepoJumpInHandlerFactory.java b/src/main/java/org/olat/repository/RepoJumpInHandlerFactory.java
index aea673d3208e25679a7f7a39e496b72449f9cf67..aad09716eaa1fd30600ef2c71aebe06f857a1ef4 100644
--- a/src/main/java/org/olat/repository/RepoJumpInHandlerFactory.java
+++ b/src/main/java/org/olat/repository/RepoJumpInHandlerFactory.java
@@ -25,14 +25,12 @@
 
 package org.olat.repository;
 
-import org.olat.core.dispatcher.DispatcherAction;
 import org.olat.core.dispatcher.jumpin.JumpInHandlerFactory;
 import org.olat.core.dispatcher.jumpin.JumpInReceptionist;
 import org.olat.core.dispatcher.jumpin.JumpInResult;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.helpers.Settings;
 import org.olat.core.id.OLATResourceable;
 
 /**
@@ -40,11 +38,11 @@ import org.olat.core.id.OLATResourceable;
  * 
  * Initial Date: 23.02.2005 <br>
  * @author Felix Jost
+ * @deprecated Use business path instead
  */
 public class RepoJumpInHandlerFactory implements JumpInHandlerFactory {
 	private static final String CONST_RID = "rid";
 	static final String CONST_PAR = "par";
-	private static final String CONST_EXTLINK = "repo/go";
 
 	/**
 	 * 
@@ -77,27 +75,7 @@ public class RepoJumpInHandlerFactory implements JumpInHandlerFactory {
 
 	}
 
-	/**
-	 * Build a dispatch URI which a user can use to call re directly by entering
-	 * the dispatch URI into his/her browser location bar.
-	 * 
-	 * @param re
-	 * @return Complete dispatch URI.
-	 */
-	public static String buildRepositoryDispatchURI(RepositoryEntry re) {
-		return buildRepositoryDispatchURI(re, null);
-	}
 
-	//TODO DOCU + use this in NodeEditController
-	public static String buildRepositoryDispatchURI(RepositoryEntry re, String initialViewIdentifyer) {
-		StringBuilder sb = new StringBuilder();
-		sb.append(Settings.getServerContextPathURI()).append(DispatcherAction.PATH_AUTHENTICATED).append(CONST_EXTLINK).append("?").append(CONST_RID)
-				.append("=").append(re.getKey());
-		if (initialViewIdentifyer != null) {
-			sb.append("&").append(CONST_PAR).append("=").append(initialViewIdentifyer);
-		}
-		return sb.toString();
-	}
 	
 	
 }
diff --git a/src/main/java/org/olat/user/notification/UserJumpInHandlerFactory.java b/src/main/java/org/olat/user/notification/UserJumpInHandlerFactory.java
index 01472c0b7da40c7558098ee2b2454bfcc1ce9dbd..6ae52a8a0e9d1c8ec8b1d667d18dfdd0f648f60e 100644
--- a/src/main/java/org/olat/user/notification/UserJumpInHandlerFactory.java
+++ b/src/main/java/org/olat/user/notification/UserJumpInHandlerFactory.java
@@ -36,10 +36,11 @@ import org.olat.core.id.Identity;
  * Initial Date:  19 august 2009 <br>
  *
  * @author srosse
+ * @deprecated Use business path instead
  */
 public class UserJumpInHandlerFactory implements JumpInHandlerFactory {
 
-	public static final String CONST_EXTLINK = "user/go";
+	private static final String CONST_EXTLINK = "user/go";
 	public static final String CONST_IDENTITY_ID = "idenid";
 	
 	public JumpInReceptionist createJumpInHandler(UserRequest ureq) {