diff --git a/src/main/java/org/olat/course/editor/_content/status.html b/src/main/java/org/olat/course/editor/_content/status.html
index 45a65b2ef1769e7041b3c16102c836d6c27014aa..94cfd03b213e99b25760f42173c6cd22e6ceeebc 100644
--- a/src/main/java/org/olat/course/editor/_content/status.html
+++ b/src/main/java/org/olat/course/editor/_content/status.html
@@ -27,7 +27,7 @@
 			<i class="o_icon o_icon-fw o_icon_warn"></i>
 			$r.translate("toggle.coursestatus.warnings", $warningsCount)
 		</h4>
-		<ul class="list-unstyled">
+		<ul class="o_warning list-unstyled">
 		#foreach($elem in $warningIsForNode)
 			<li>
 			#set ($counter = $velocityCount - 1)
diff --git a/src/main/java/org/olat/course/nodes/GTACourseNode.java b/src/main/java/org/olat/course/nodes/GTACourseNode.java
index ed34240d1d6004ee7131ef72ca44ec3f7aa86c25..b656f66768c98818ebc0fd5ed97afa154c499610 100644
--- a/src/main/java/org/olat/course/nodes/GTACourseNode.java
+++ b/src/main/java/org/olat/course/nodes/GTACourseNode.java
@@ -72,6 +72,8 @@ import org.olat.course.nodes.gta.GTAType;
 import org.olat.course.nodes.gta.Task;
 import org.olat.course.nodes.gta.TaskHelper;
 import org.olat.course.nodes.gta.TaskList;
+import org.olat.course.nodes.gta.model.TaskDefinition;
+import org.olat.course.nodes.gta.model.TaskDefinitionList;
 import org.olat.course.nodes.gta.ui.BulkDownloadToolController;
 import org.olat.course.nodes.gta.ui.GTAAssessmentDetailsController;
 import org.olat.course.nodes.gta.ui.GTAEditController;
@@ -273,6 +275,26 @@ public class GTACourseNode extends AbstractAccessableCourseNode implements Asses
 				File taskDirectory = gtaManager.getTasksDirectory(course.getCourseEnvironment(), this);
 				if(!TaskHelper.hasDocuments(taskDirectory)) {
 					addStatusErrorDescription("error.missing.tasks", GTAEditController.PANE_TAB_ASSIGNMENT, sdList);
+				} else {
+					TaskDefinitionList taskList = (TaskDefinitionList)config.get(GTACourseNode.GTASK_TASKS);
+					if(taskList == null || taskList.getTasks() == null || taskList.getTasks().isEmpty()) {
+						addStatusErrorDescription("error.missing.tasks", GTAEditController.PANE_TAB_ASSIGNMENT, sdList);
+					} else {
+						String[] filenames = taskDirectory.list();
+						for(TaskDefinition taskDef: taskList.getTasks()) {
+							boolean found = false;
+							for(String filename:filenames) {
+								if(filename.equals(taskDef.getFilename())) {
+									found = true;
+									break;
+								}
+							}
+							
+							if(!found) {
+								addStatusWarningDescription("error.missing.file", GTAEditController.PANE_TAB_ASSIGNMENT, sdList);
+							}
+						}
+					}
 				}
 			}
 			
@@ -313,6 +335,14 @@ public class GTACourseNode extends AbstractAccessableCourseNode implements Asses
 		status.add(sd);
 	}
 	
+	private void addStatusWarningDescription(String key, String pane, List<StatusDescription> status) {
+		String[] params = new String[] { getShortTitle() };
+		StatusDescription sd = new StatusDescription(StatusDescription.WARNING, key, key, params, PACKAGE_GTA);
+		sd.setDescriptionForUnit(getIdent());
+		sd.setActivateableViewIdentifier(pane);
+		status.add(sd);
+	}
+	
 	/**
 	 * 
 	 * The files are exported in export/{node ident}/tasks and export/{node ident}/solutions
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAAssignmentEditController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAAssignmentEditController.java
index 3d07c59c8d4d185b5f9472021a9b2925b64ca3c9..898f5c98443593843c651367ff8200c2780d4416 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/GTAAssignmentEditController.java
+++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAAssignmentEditController.java
@@ -35,7 +35,9 @@ import org.olat.core.gui.components.form.flexible.impl.FormEvent;
 import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.BooleanCellRenderer;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiCellRenderer;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableComponent;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiCellRenderer;
@@ -47,6 +49,10 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
 import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
+import org.olat.core.gui.render.Renderer;
+import org.olat.core.gui.render.StringOutput;
+import org.olat.core.gui.render.URLBuilder;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
@@ -79,6 +85,7 @@ public class GTAAssignmentEditController extends FormBasicController {
 	private FlexiTableElement taskDefTableEl;
 	private TaskDefinitionTableModel taskModel;
 	private SingleSelection typeEl, previewEl, samplingEl;
+	private WarningFlexiCellRenderer fileExistsRenderer;
 	
 	private CloseableModalController cmc;
 	private NewTaskController newTaskCtrl;
@@ -134,7 +141,8 @@ public class GTAAssignmentEditController extends FormBasicController {
 		
 		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TDCols.title.i18nKey(), TDCols.title.ordinal()));
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TDCols.file.i18nKey(), TDCols.file.ordinal()));
+		fileExistsRenderer = new WarningFlexiCellRenderer();
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(TDCols.file.i18nKey(), TDCols.file.ordinal(), fileExistsRenderer));
 		columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("table.header.edit", TDCols.edit.ordinal(), "edit",
 				new BooleanCellRenderer(
 						new StaticFlexiCellRenderer(translate("edit"), "edit"),
@@ -203,6 +211,7 @@ public class GTAAssignmentEditController extends FormBasicController {
 	}
 	
 	private void updateModel() {
+		fileExistsRenderer.setFilenames(tasksFolder.list());
 		taskModel.setObjects(taskList.getTasks());
 		taskDefTableEl.reset();
 	}
@@ -442,4 +451,37 @@ public class GTAAssignmentEditController extends FormBasicController {
 		updateModel();
 		fireEvent(ureq, Event.DONE_EVENT);
 	}
+	
+	private class WarningFlexiCellRenderer implements FlexiCellRenderer {
+		
+		private String[] tasks;
+
+		public void setFilenames(String[] tasks) {
+			this.tasks = tasks;
+		}
+
+		@Override
+		public void render(Renderer renderer, StringOutput target, Object cellValue, int row,
+				FlexiTableComponent source, URLBuilder ubu, Translator translator) {
+			
+			if(cellValue instanceof String) {
+				String filename = (String)cellValue;
+				boolean found = false;
+				
+				if(tasks != null && tasks.length > 0) {
+					for(String task:tasks) {
+						if(task.equals(filename)) {
+							found = true;
+							break;
+						}
+					}
+				}
+				
+				if(!found) {
+					target.append("<i class='o_icon o_icon_warn'> </i> ");
+				}
+				StringHelper.escapeHtml(target, filename);
+			}
+		}
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties
index 26595032f3a5cd43b6e4ee71e9da88bc36c17970..41380e93a60f83580e5c7d3b7e7d47f7b7ae90cc 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties
@@ -61,6 +61,7 @@ error.editor.atLeastOne=Sie m\u00FCssen mindestens einen Editortyp w\u00E4hlen.
 error.file.exists=$org.olat.core.commons.modules.bc\:cfile.already.exists
 error.file.invalid=$org.olat.core.commons.modules.bc\:cfile.name.notvalid
 error.max.documents=Sie d\u00FCrfen nicht mehr als <b>{0}</b> Dokument(e) abgeben. Aber sie k\u00F6nnen noch ein Dokument austauschen oder editieren.
+error.missing.file=Es fehlt die Datei einer Aufgabe
 error.missing.group=Sie haben noch keine Gruppe gew\u00E4hlt
 error.missing.score.config=Fehlende Bewertungskonfiguration
 error.missing.solutions=Sie haben noch keine L\u00F6sungen hochgeladen
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
index 21050ca85123cd43faadd841598db9eaf397a918..63646a43a84135898dae9b09be04cd4791939d82 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
@@ -63,6 +63,7 @@ error.editor.atLeastOne=You must choose at least one kind of editor.
 error.file.exists=$org.olat.core.commons.modules.bc\:cfile.already.exists
 error.file.invalid=$org.olat.core.commons.modules.bc\:cfile.name.notvalid
 error.max.documents=You are not allowed to submit more than <b>{0}</b> Documents. You may edit or change a document.
+error.missing.file=The file of a task is missing
 error.missing.group=You have not selected a group yet
 error.missing.score.config=Missing score configuration
 error.missing.solutions=You have not submitted any solutions yet