diff --git a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeEditController.java b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeEditController.java
index c199dca18f0611aa7b0a8c2352ecb62b15740a16..3d1fb343e1c2c364c7d389bebf9aa56bcd120fb1 100644
--- a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeEditController.java
+++ b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeEditController.java
@@ -50,6 +50,7 @@ import org.olat.course.ICourse;
 import org.olat.course.assessment.AssessmentHelper;
 import org.olat.course.condition.Condition;
 import org.olat.course.condition.ConditionEditController;
+import org.olat.course.config.CourseConfig;
 import org.olat.course.editor.NodeEditController;
 import org.olat.course.nodes.BCCourseNode;
 import org.olat.course.run.userview.UserCourseEnvironment;
@@ -106,7 +107,9 @@ public class BCCourseNodeEditController extends ActivateableTabbableDefaultContr
 						.getAssessableNodes(course.getEditorTreeModel(), bcNode));		
 		listenTo(uploaderCondContr);
 
-		if(bcNode.getModuleConfiguration().getStringValue(CONFIG_SUBPATH, "").startsWith("/_sharedfolder")){
+		CourseConfig courseConfig = course.getCourseConfig();
+		if(bcNode.getModuleConfiguration().getStringValue(CONFIG_SUBPATH, "").startsWith("/_sharedfolder")
+				&& courseConfig.isSharedFolderReadOnlyMount()) {
 			accessabiliryContent.contextPut("uploadable", false);
 		} else {
 			accessabiliryContent.contextPut("uploadable", true);
diff --git a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeRunController.java b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeRunController.java
index 1ce8412c60f51ba9609f88128ca7cad3755f5919..17b9c467fd3471b853aa18920474ad2b067e441a 100644
--- a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeRunController.java
+++ b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeRunController.java
@@ -102,10 +102,14 @@ public class BCCourseNodeRunController extends DefaultController implements Acti
 				noFolder = true;
 				BCCourseNodeNoFolderForm noFolderForm = new BCCourseNodeNoFolderForm(ureq, getWindowControl());
 				setInitialComponent(noFolderForm.getInitialComponent());
-			}else if(item instanceof VFSContainer){
+			} else if(item instanceof VFSContainer){
 				target = new NamedContainerImpl(courseNode.getShortTitle(), (VFSContainer) item);
 			}
-			scallback = new FolderNodeReadOnlyCallback(nodefolderSubContext);
+			if(courseEnv.getCourseConfig().isSharedFolderReadOnlyMount()) {
+				scallback = new FolderNodeReadOnlyCallback(nodefolderSubContext);
+			} else {
+				scallback = new FolderNodeCallback(BCCourseNode.getNodeFolderContainer(courseNode, courseEnv).getRelPath(), ne, isOlatAdmin, isGuestOnly, nodefolderSubContext);
+			}
 		} else{
 			//create folder automatically if not found
 			String subPath = courseNode.getModuleConfiguration().getStringValue(BCCourseNodeEditController.CONFIG_SUBPATH);