diff --git a/src/main/java/org/olat/course/nodes/gta/ui/EditSolutionController.java b/src/main/java/org/olat/course/nodes/gta/ui/EditSolutionController.java
index a0b84ec74613f233bc5936e134d8df8cb6a7edb7..74646ba26747f405753732cf7c5a9101014be9ca 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/EditSolutionController.java
+++ b/src/main/java/org/olat/course/nodes/gta/ui/EditSolutionController.java
@@ -39,6 +39,7 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
+import org.olat.core.util.vfs.VFSManager;
 import org.olat.course.nodes.gta.model.Solution;
 
 
@@ -60,12 +61,12 @@ public class EditSolutionController extends FormBasicController {
 	
 	public EditSolutionController(UserRequest ureq, WindowControl wControl,
 			File solutionDir, VFSContainer solutionContainer) {
-		this(ureq, wControl, new Solution(), solutionDir, solutionContainer, true);
+		this(ureq, wControl, new Solution(), solutionDir, solutionContainer, false);
 	}
 	
 	public EditSolutionController(UserRequest ureq, WindowControl wControl, Solution solution,
 			File solutionDir, VFSContainer solutionContainer) {
-		this(ureq, wControl, solution, solutionDir, solutionContainer, false);
+		this(ureq, wControl, solution, solutionDir, solutionContainer, true);
 	}
 	
 	private EditSolutionController(UserRequest ureq, WindowControl wControl,
@@ -145,6 +146,13 @@ public class EditSolutionController extends FormBasicController {
 			}
 			
 			String filename = fileEl.getUploadFileName();
+			if(!replaceFile) {
+				File currentFile = new File(solutionDir, filename);
+				if(currentFile.exists()) {
+					filename = VFSManager.rename(solutionContainer, filename);
+				}
+			}
+			
 			solution.setFilename(filename);
 			
 			try {