diff --git a/src/main/java/org/olat/core/commons/services/webdav/WebDAVModule.java b/src/main/java/org/olat/core/commons/services/webdav/WebDAVModule.java
index c956aab9e4073d05ed98a6417c6c17e16b4ea841..7779416fe5a7f8a182109c20b9f9a5dbe0bc3152 100644
--- a/src/main/java/org/olat/core/commons/services/webdav/WebDAVModule.java
+++ b/src/main/java/org/olat/core/commons/services/webdav/WebDAVModule.java
@@ -47,6 +47,7 @@ public class WebDAVModule extends AbstractSpringModule implements ConfigOnOff {
 	private static final String TERMS_FOLDERS_ENABLED = "webdav.termsfolders.enabled";
 	private static final String LEARNERS_BOOKMARKS_COURSE = "webdav.learners.bookmarks.courses";
 	private static final String LEARNERS_PARTICIPATING_COURSES = "webdav.learners.participating.courses";
+	private static final String PREPEND_COURSE_REFERENCE_TO_TITLE = "webdav.prepend.course.reference.to.title";
 	
 	@Autowired
 	private List<WebDAVProvider> webdavProviders;
@@ -59,6 +60,8 @@ public class WebDAVModule extends AbstractSpringModule implements ConfigOnOff {
 	private boolean digestAuthenticationEnabled;
 	@Value("${webdav.termsfolders.enabled:true}")
 	private boolean termsFoldersEnabled;
+	@Value("${webdav.prepend.course.reference.to.title:false}")
+	private boolean prependCourseReferenceToTitle;
 
 	@Value("${webdav.learners.bookmarks.enabled:true}")
 	private boolean enableLearnersBookmarksCourse;
@@ -101,6 +104,10 @@ public class WebDAVModule extends AbstractSpringModule implements ConfigOnOff {
 		if(StringHelper.containsNonWhitespace(learnersParticipatingCoursesObj)) {
 			enableLearnersParticipatingCourses = "true".equals(learnersParticipatingCoursesObj);
 		}
+		String prependCourseReferenceToTitleObj = getStringPropertyValue(PREPEND_COURSE_REFERENCE_TO_TITLE, true);
+		if(StringHelper.containsNonWhitespace(prependCourseReferenceToTitleObj)) {
+			prependCourseReferenceToTitle = "true".equals(prependCourseReferenceToTitleObj);
+		}
 	}
 	
 	@Override
@@ -166,6 +173,15 @@ public class WebDAVModule extends AbstractSpringModule implements ConfigOnOff {
 		this.enableLearnersParticipatingCourses = enabled;
 		setStringProperty(LEARNERS_PARTICIPATING_COURSES, enabled ? "true" : "false", true);
 	}
+	
+	public boolean isPrependCourseReferenceToTitle() {
+		return prependCourseReferenceToTitle;
+	}
+	
+	public void setPrependCourseReferenceToTitle(boolean enabled) {
+		this.prependCourseReferenceToTitle = enabled;
+		setStringProperty(PREPEND_COURSE_REFERENCE_TO_TITLE, enabled ? "true" : "false", true);
+	}
 
 	/**
 	 * Return an unmodifiable map
diff --git a/src/main/java/org/olat/core/commons/services/webdav/ui/WebDAVAdminController.java b/src/main/java/org/olat/core/commons/services/webdav/ui/WebDAVAdminController.java
index 001e7e99a7c0d61f8a90fbb29a2ddf6b2bd7c21f..f531c4d0fc43cd26a39536be6142d8549254923b 100644
--- a/src/main/java/org/olat/core/commons/services/webdav/ui/WebDAVAdminController.java
+++ b/src/main/java/org/olat/core/commons/services/webdav/ui/WebDAVAdminController.java
@@ -38,7 +38,7 @@ import org.olat.core.gui.control.WindowControl;
 public class WebDAVAdminController extends FormBasicController {
 	
 	private MultipleSelectionElement enableModuleEl, enableLinkEl, enableDigestEl, enableTermsFoldersEl,
-			learnersAsParticipantEl, learnersBookmarkEl;
+			learnersAsParticipantEl, learnersBookmarkEl, prependReferenceEl;
 	
 	private final WebDAVModule webDAVModule;
 	
@@ -78,6 +78,11 @@ public class WebDAVAdminController extends FormBasicController {
 		enableTermsFoldersEl.select("xx", webDAVModule.isTermsFoldersEnabled());
 		enableTermsFoldersEl.addActionListener(FormEvent.ONCHANGE);
 		enableTermsFoldersEl.setEnabled(enabled);
+		
+		prependReferenceEl = uifactory.addCheckboxesHorizontal("webdavPrepend", "webdav.prepend.reference", formLayout, new String[]{"xx"}, values);
+		prependReferenceEl.select("xx", webDAVModule.isPrependCourseReferenceToTitle());
+		prependReferenceEl.addActionListener(FormEvent.ONCHANGE);
+		prependReferenceEl.setEnabled(enabled);
 
 		uifactory.addSpacerElement("spacer2", formLayout, false);
 		
@@ -122,6 +127,9 @@ public class WebDAVAdminController extends FormBasicController {
 		} else if(source == learnersBookmarkEl) {
 			boolean enabled = learnersBookmarkEl.isAtLeastSelected(1);
 			webDAVModule.setEnableLearnersBookmarksCourse(enabled);
+		} else if(source == prependReferenceEl) {
+			boolean enabled = prependReferenceEl.isAtLeastSelected(1);
+			webDAVModule.setPrependCourseReferenceToTitle(enabled);
 		}
 		super.formInnerEvent(ureq, source, event);
 	}
diff --git a/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_de.properties
index bcb46a6c11feef718b6bdcc1672b2793b84bbf5c..fed9cf9c09159814e4111ad517a3cfe41a9dacf4 100644
--- a/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_de.properties
@@ -2,17 +2,7 @@
 admin.menu.title=WebDAV
 admin.menu.title.alt=WebDAV Zugang
 admin.webdav.description=Mit Hilfe von WebDAV k\u00F6nnen Sie OpenOLAT Ordner auf Ihrem lokalen Desktop wie lokale Ordner anzeigen und verwenden. Konfigurieren Sie ob diese Funktion allen Benutzern Systemweit zur Verf\u00FCgung stehen soll. Bitte lesen sie die Kontexthilfe.
-
-
-
-
-
-
-
-
-
 core.webdav=WebDAV
-
 webdav.digest=Digest Authentication bei HTTP Zugang verwenden 
 webdav.link=WebDAV Links anzeigen
 webdav.module=WebDAV Zugang
@@ -20,3 +10,4 @@ webdav.on=ein
 webdav.termsfolders=Kurse nach Semesterdaten gruppieren
 webdav.for.learners.participants=Zugriff für Studenten Kursen
 webdav.for.learners.bookmarks=Zugriff für Studenten Favoriten
+webdav.prepend.reference=Kursreferenz zu Titel voranstellen
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_en.properties
index 7ed0539a648e173e3c27ba4a6b08b402d8652904..b03f1dc2aea1a59c5a22b974b0f74320d0c524ec 100644
--- a/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_en.properties
@@ -2,17 +2,7 @@
 admin.menu.title=WebDAV
 admin.menu.title.alt=WebDAV access
 admin.webdav.description=Using WebDAV you can mount and use OpenOLAT folders on your local desktop as if they were local folders. Enable this feature to make it accessable to all users of your platform. Please read the context help.
-
-
-
-
-
-
-
-
-
 core.webdav=WebDAV
-
 webdav.digest=Digest Authentication for HTTP access
 webdav.link=Show WebDAV links
 webdav.module=WebDAV access
@@ -20,4 +10,4 @@ webdav.on=enabled
 webdav.termsfolders=Group courses by semester terms
 webdav.for.learners.participants=Enable access for courses where user is participant
 webdav.for.learners.bookmarks=Enable for courses that users marked as favorite
-
+webdav.prepend.reference=Prepend course reference to title
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/CoursefolderWebDAVMergeSource.java b/src/main/java/org/olat/course/CoursefolderWebDAVMergeSource.java
index aca632ed1662d155e79ad1b24035393b99435fa2..59e36413c44249949eee98e8398b5e64e9b21e14 100644
--- a/src/main/java/org/olat/course/CoursefolderWebDAVMergeSource.java
+++ b/src/main/java/org/olat/course/CoursefolderWebDAVMergeSource.java
@@ -31,6 +31,7 @@ import org.olat.core.commons.services.webdav.WebDAVModule;
 import org.olat.core.commons.services.webdav.manager.WebDAVMergeSource;
 import org.olat.core.commons.services.webdav.servlets.RequestUtil;
 import org.olat.core.id.IdentityEnvironment;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.vfs.NamedContainerImpl;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VirtualContainer;
@@ -71,21 +72,22 @@ class CoursefolderWebDAVMergeSource extends WebDAVMergeSource {
 			terms = new HashMap<String, VFSContainer>();
 			noTermContainer = new VirtualContainer("other");
 		}
+		boolean prependReference = webDAVModule.isPrependCourseReferenceToTitle();
 		
 		Set<RepositoryEntry> duplicates = new HashSet<>();
 		List<RepositoryEntry> editorEntries = repositoryManager.queryByOwner(getIdentity(), "CourseModule");
-		appendCourses(editorEntries, true, containers, useTerms,  terms, noTermContainer, duplicates);
+		appendCourses(editorEntries, true, containers, useTerms, terms, noTermContainer, prependReference, duplicates);
 		
 		//add courses as participant
 		if(webDAVModule.isEnableLearnersParticipatingCourses()) {
 			List<RepositoryEntry> participantEntries = repositoryManager.getLearningResourcesAsStudent(getIdentity(), "CourseModule", 0, -1);
-			appendCourses(participantEntries, false, containers, useTerms,  terms, noTermContainer, duplicates);
+			appendCourses(participantEntries, false, containers, useTerms, terms, noTermContainer, prependReference, duplicates);
 		}
 		
 		//add bookmarked courses
 		if(webDAVModule.isEnableLearnersBookmarksCourse()) {
 			List<RepositoryEntry> bookmarkedEntries = repositoryManager.getLearningResourcesAsBookmark(getIdentity(), identityEnv.getRoles(), "CourseModule", 0, -1);
-			appendCourses(bookmarkedEntries, false, containers, useTerms,  terms, noTermContainer, duplicates);
+			appendCourses(bookmarkedEntries, false, containers, useTerms, terms, noTermContainer, prependReference, duplicates);
 		}
 
 		if (useTerms) {
@@ -100,7 +102,7 @@ class CoursefolderWebDAVMergeSource extends WebDAVMergeSource {
 	
 	private void appendCourses(List<RepositoryEntry> courseEntries, boolean editor, List<VFSContainer> containers,
 			boolean useTerms, Map<String, VFSContainer> terms, VirtualContainer noTermContainer,
-			Set<RepositoryEntry> duplicates) {	
+			boolean prependReference, Set<RepositoryEntry> duplicates) {	
 		
 		// Add all found repo entries to merge source
 		for (RepositoryEntry re:courseEntries) {
@@ -109,7 +111,11 @@ class CoursefolderWebDAVMergeSource extends WebDAVMergeSource {
 			}
 			duplicates.add(re);
 			
-			String courseTitle = RequestUtil.normalizeFilename(re.getDisplayname());
+			String displayName = re.getDisplayname();
+			if(prependReference && StringHelper.containsNonWhitespace(re.getExternalId())) {
+				displayName = re.getExternalId() + " " + displayName;
+			}
+			String courseTitle = RequestUtil.normalizeFilename(displayName);
 			NamedContainerImpl cfContainer = new CoursefolderWebDAVNamedContainer(courseTitle, re, editor ? null : identityEnv);
 			
 			if (useTerms) {