diff --git a/src/main/java/org/olat/core/util/vfs/VFSManager.java b/src/main/java/org/olat/core/util/vfs/VFSManager.java
index bf4db7bd14fa4f6c69d2cafe92b0a0078811074a..c2f04382645a02f60a355aff6343c65e484a5cf5 100644
--- a/src/main/java/org/olat/core/util/vfs/VFSManager.java
+++ b/src/main/java/org/olat/core/util/vfs/VFSManager.java
@@ -604,6 +604,12 @@ public class VFSManager {
 					relFilePath = relFilePath.substring(stop);
 					return findWritableRootFolderForRecursion(rootDir, relFilePath, recursionLevel);
 				}
+				//very< special case for share folder in merged source
+				if(item instanceof OlatRootFolderImpl && "_sharedfolder_".equals(item.getName())) {
+					rootDir = (OlatRootFolderImpl)item;
+					relFilePath = relFilePath.substring(stop);
+					return findWritableRootFolderForRecursion(rootDir, relFilePath, recursionLevel);
+				}
 			}
 
 			VFSContainer rootWriteContainer = mergedDir.getRootWriteContainer();