diff --git a/src/main/java/org/olat/collaboration/CollaborationTools.java b/src/main/java/org/olat/collaboration/CollaborationTools.java
index 069ed53bb323311d76b937f91e30645b07602890..71ab79f992be22c13917c478b68811b772b04d12 100644
--- a/src/main/java/org/olat/collaboration/CollaborationTools.java
+++ b/src/main/java/org/olat/collaboration/CollaborationTools.java
@@ -856,6 +856,11 @@ public class CollaborationTools implements Serializable {
 			return write;
 		}
 
+		@Override
+		public boolean canCreateFolder() {
+			return write;
+		}
+
 		public boolean canDelete() {
 			return write;
 		}
diff --git a/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponentRenderer.java b/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponentRenderer.java
index bc1645bcd75babaf1cfd3cbe7e03c0a829d6ba90..84374fc7c12527f95cb4c22eec991e317767538e 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponentRenderer.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponentRenderer.java
@@ -94,6 +94,11 @@ public class FolderComponentRenderer implements ComponentRenderer {
 		
 		VFSContainer currentContainer = fc.getCurrentContainer();
 		boolean canWrite = currentContainer.canWrite() == VFSConstants.YES;
+		boolean canCreateFolder = true;
+		if(currentContainer.getLocalSecurityCallback() != null && !currentContainer.getLocalSecurityCallback().canCreateFolder()) {
+			canCreateFolder = false;
+		}
+		
 		boolean canDelete = false;
 		boolean canVersion = FolderConfig.versionsEnabled(fc.getCurrentContainer());
 		boolean canMail = fc.isCanMail();
@@ -167,18 +172,20 @@ public class FolderComponentRenderer implements ComponentRenderer {
 				target.append(translator.translate("ul"));			
 				target.append("</a></li>");
 	
-				// option new folder
-				target.append("<li><a class=\"b_briefcase_newfolder\" href=\"");
-				ubu.buildURI(target, new String[] { VelocityContainer.COMMAND_ID }, new String[] { "cf"  }, iframePostEnabled ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
-				target.append("\"");
-				if (iframePostEnabled) { // add ajax iframe target
-					StringOutput so = new StringOutput();
-					ubu.appendTarget(so);
-					target.append(so.toString());
+				if(canCreateFolder) {
+					// option new folder
+					target.append("<li><a class=\"b_briefcase_newfolder\" href=\"");
+					ubu.buildURI(target, new String[] { VelocityContainer.COMMAND_ID }, new String[] { "cf"  }, iframePostEnabled ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
+					target.append("\"");
+					if (iframePostEnabled) { // add ajax iframe target
+						StringOutput so = new StringOutput();
+						ubu.appendTarget(so);
+						target.append(so.toString());
+					}
+					target.append(">");
+					target.append(translator.translate("cf"));
+					target.append("</a></li>");
 				}
-				target.append(">");
-				target.append(translator.translate("cf"));
-				target.append("</a></li>");
 	
 				// option new file
 				target.append("<li><a class=\"b_briefcase_newfile\" href=\"");
diff --git a/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessCallback.java b/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessCallback.java
index 2bd18c21f4eaa4a87cc4b4437de76eccdf0e3053..b97736342a43dc0b02dcba9b98b3bdf1665bac2f 100644
--- a/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessCallback.java
+++ b/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessCallback.java
@@ -39,6 +39,11 @@ public class FullAccessCallback implements VFSSecurityCallback {
 		return true;
 	}
 
+	@Override
+	public boolean canCreateFolder() {
+		return true;
+	}
+
 	public boolean canDelete() {
 		return true;
 	}
diff --git a/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessWithQuotaCallback.java b/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessWithQuotaCallback.java
index 5101bc327f16b5e0d4d938ab64c0349de818e6b1..d4dc2e69dd72df47d606314ff33aa471164b6578 100644
--- a/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessWithQuotaCallback.java
+++ b/src/main/java/org/olat/core/util/vfs/callbacks/FullAccessWithQuotaCallback.java
@@ -51,6 +51,11 @@ public class FullAccessWithQuotaCallback implements VFSSecurityCallback {
 		return true;
 	}
 
+	@Override
+	public boolean canCreateFolder() {
+		return true;
+	}
+
 	public boolean canDelete() {
 		return true;
 	}
diff --git a/src/main/java/org/olat/core/util/vfs/callbacks/ReadOnlyCallback.java b/src/main/java/org/olat/core/util/vfs/callbacks/ReadOnlyCallback.java
index 587b6f5d3a9a62441362f56ec61b0e2c7684a1bc..ecfca7cfecec0ceab3400dc4cb0490f0e0913c16 100644
--- a/src/main/java/org/olat/core/util/vfs/callbacks/ReadOnlyCallback.java
+++ b/src/main/java/org/olat/core/util/vfs/callbacks/ReadOnlyCallback.java
@@ -52,6 +52,11 @@ public class ReadOnlyCallback implements VFSSecurityCallback {
 		return false;
 	}
 
+	@Override
+	public boolean canCreateFolder() {
+		return false;
+	}
+
 	/**
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canDelete(org.olat.modules.bc.Path)
 	 */
diff --git a/src/main/java/org/olat/core/util/vfs/callbacks/VFSSecurityCallback.java b/src/main/java/org/olat/core/util/vfs/callbacks/VFSSecurityCallback.java
index 234fd752a9c9024d8ade778ae80daff75f909f88..152982f470e4040fe3829fc084ac273de5f18f89 100644
--- a/src/main/java/org/olat/core/util/vfs/callbacks/VFSSecurityCallback.java
+++ b/src/main/java/org/olat/core/util/vfs/callbacks/VFSSecurityCallback.java
@@ -51,6 +51,12 @@ public interface VFSSecurityCallback {
 	 * @return True if writing is allowed.
 	 */
 	public boolean canWrite();
+	
+	/**
+	 * 
+	 * @return True if creating new folders is allowed
+	 */
+	public boolean canCreateFolder();
 
 	/**
 	 * @return True if deleting is allowed.
diff --git a/src/main/java/org/olat/core/util/vfs/restapi/VFSWebServiceSecurityCallback.java b/src/main/java/org/olat/core/util/vfs/restapi/VFSWebServiceSecurityCallback.java
index 671038cad481f931ed979c634477c4841623e9b9..f3d43b1b3d301accf683ecb924c26190a72039a9 100644
--- a/src/main/java/org/olat/core/util/vfs/restapi/VFSWebServiceSecurityCallback.java
+++ b/src/main/java/org/olat/core/util/vfs/restapi/VFSWebServiceSecurityCallback.java
@@ -56,6 +56,11 @@ public class VFSWebServiceSecurityCallback implements VFSSecurityCallback {
 		return canWrite;
 	}
 
+	@Override
+	public boolean canCreateFolder() {
+		return canWrite;
+	}
+
 	@Override
 	public boolean canDelete() {
 		return canDelete;
diff --git a/src/main/java/org/olat/course/nodes/bc/FolderNodeCallback.java b/src/main/java/org/olat/course/nodes/bc/FolderNodeCallback.java
index 22b1fc1ea8e9762970d830a949f7e2aef3b00df2..8db430b9015daecda5f9d595794f1ecdb39b565a 100644
--- a/src/main/java/org/olat/course/nodes/bc/FolderNodeCallback.java
+++ b/src/main/java/org/olat/course/nodes/bc/FolderNodeCallback.java
@@ -88,6 +88,11 @@ public class FolderNodeCallback implements VFSSecurityCallback {
 		return ne.isCapabilityAccessible("upload") || isOlatAdmin;
 	}
 
+	@Override
+	public boolean canCreateFolder() {
+		return canWrite();
+	}
+
 	/**
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canDelete(org.olat.modules.bc.Path)
 	 */
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerCourseEditorController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerCourseEditorController.java
index 7aca8cc362d1984154fa2b226d5e510eaeb2cf43..7b4da992ba10c08becaaf607c7545c1c54369694 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerCourseEditorController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerCourseEditorController.java
@@ -426,6 +426,11 @@ class FolderCallback implements VFSSecurityCallback {
 		return !folderLocked;
 	}
 
+	@Override
+	public boolean canCreateFolder() {
+		return !folderLocked;
+	}
+
 	/**
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canDelete(org.olat.modules.bc.Path)
 	 */
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java
index afccb20ca92414bb985306bd470b1e2ae3c4389d..7c36b0e2237b678f06155980c7131c6ee1bce89f 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java
@@ -125,6 +125,9 @@ class ReturnboxFullAccessCallback implements VFSSecurityCallback {
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canWrite(org.olat.modules.bc.Path)
 	 */
 	public boolean canWrite() { return true; }
+	@Override
+	public boolean canCreateFolder() { return true; }
+
 	/**
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canDelete(org.olat.modules.bc.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 3439dc73f062c91904cce8ce22143727d05917eb..9cf2fbb5a967fb377df3dc0a572663628e028a9d 100644
--- a/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java
+++ b/src/main/java/org/olat/course/nodes/ta/DropboxScoringViewController.java
@@ -373,6 +373,8 @@ class ReadOnlyAndDeleteCallback implements VFSSecurityCallback {
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canWrite(org.olat.modules.bc.Path)
 	 */
 	public boolean canWrite() { return false; }
+	@Override
+	public boolean canCreateFolder() { return false; }
 	/**
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canDelete(org.olat.modules.bc.Path)
 	 */
@@ -428,6 +430,8 @@ class ReturnboxFullAccessCallback implements VFSSecurityCallback {
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canWrite(org.olat.modules.bc.Path)
 	 */
 	public boolean canWrite() { return true; }
+	@Override
+	public boolean canCreateFolder() { return true; }
 	/**
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canDelete(org.olat.modules.bc.Path)
 	 */
diff --git a/src/main/java/org/olat/course/nodes/ta/TACourseNodeEditController.java b/src/main/java/org/olat/course/nodes/ta/TACourseNodeEditController.java
index bf8fd1481102f0e4a4786f8cf83ccd115e76fb57..f25a2095f8e16d40433a44329159defe68d4153f 100644
--- a/src/main/java/org/olat/course/nodes/ta/TACourseNodeEditController.java
+++ b/src/main/java/org/olat/course/nodes/ta/TACourseNodeEditController.java
@@ -639,6 +639,11 @@ class TaskFolderCallback implements VFSSecurityCallback {
 		return !folderLocked;
 	}
 
+	@Override
+	public boolean canCreateFolder() {
+		return false;
+	}
+
 	/**
 	 * @see org.olat.modules.bc.callbacks.SecurityCallback#canDelete(org.olat.modules.bc.Path)
 	 */
diff --git a/src/main/java/org/olat/repository/SharedFolderSecurityCallback.java b/src/main/java/org/olat/repository/SharedFolderSecurityCallback.java
index 251b391bfed92f3770941d67d1aa75af9b31d461..768e186a86da1731c7521a70c592acf6552f2890 100644
--- a/src/main/java/org/olat/repository/SharedFolderSecurityCallback.java
+++ b/src/main/java/org/olat/repository/SharedFolderSecurityCallback.java
@@ -63,6 +63,11 @@ public class SharedFolderSecurityCallback implements VFSSecurityCallback {
 		return true;
 	}
 
+	@Override
+	public boolean canCreateFolder() {
+		return true;
+	}
+
 	/**
 	 * @return boolean
 	 */