diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java
index 2aa9210364464f2cd96dce7f59efe6feccfdfc3e..caa9cb00e583df445f1923969292ce5183ba6d2d 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java
@@ -135,7 +135,10 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip
 	}
 
 	public String getKey(int which) {
-		return keys[which];
+		if(which >= 0 && which < keys.length) {
+			return keys[which];
+		}
+		return null;
 	}
 
 	public int getSize() {
diff --git a/src/main/java/org/olat/course/editor/EditorMainController.java b/src/main/java/org/olat/course/editor/EditorMainController.java
index ff5279bc140b68bdd063f33a531a9c21e74e4ee6..3bbba0dc56c5be141cfa03f900f409c711784c60 100644
--- a/src/main/java/org/olat/course/editor/EditorMainController.java
+++ b/src/main/java/org/olat/course/editor/EditorMainController.java
@@ -772,7 +772,7 @@ public class EditorMainController extends MainLayoutBasicController implements G
 			} else if (event.getCommand().equals(CMD_MULTI_CHECKLIST)) {
 				removeAsListenerAndDispose(checklistWizard);
 
-				Step start = new CheckList_1_CheckboxStep(ureq);
+				Step start = new CheckList_1_CheckboxStep(ureq, ores);
 				StepRunnerCallback finish = new CheckListStepRunnerCallback(ores);
 				checklistWizard = new StepsMainRunController(ureq, getWindowControl(), start, finish, null,
 						translate("checklist.wizard"), "o_sel_checklist_wizard");
@@ -786,7 +786,7 @@ public class EditorMainController extends MainLayoutBasicController implements G
 				// the event is too generic to find out what happened -> update tree in all cases (applies to ajax mode only)
 				menuTree.setDirty(true);
 				
-				cetm.nodeConfigChanged(menuTree.getSelectedNode());				
+				cetm.nodeConfigChanged(menuTree.getSelectedNode());
 				CourseFactory.saveCourseEditorTreeModel(course.getResourceableId());
 				euce.getCourseEditorEnv().validateCourse();
 				StatusDescription[] courseStatus = euce.getCourseEditorEnv().getCourseStatus();
@@ -822,6 +822,7 @@ public class EditorMainController extends MainLayoutBasicController implements G
 				checklistWizard = null;
 				if(event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
 					menuTree.setDirty(true);
+					CourseFactory.saveCourseEditorTreeModel(course.getResourceableId());
 					euce.getCourseEditorEnv().validateCourse();
 					StatusDescription[] courseStatus = euce.getCourseEditorEnv().getCourseStatus();
 					updateCourseStatusMessages(ureq.getLocale(), courseStatus);
diff --git a/src/main/java/org/olat/course/nodes/cl/model/Checkbox.java b/src/main/java/org/olat/course/nodes/cl/model/Checkbox.java
index 3ebd89ce779b6e5c483439c511cdffc83d5a7b13..34e6e73f88c4352f21c94b0788ae8a85d9c7e77d 100644
--- a/src/main/java/org/olat/course/nodes/cl/model/Checkbox.java
+++ b/src/main/java/org/olat/course/nodes/cl/model/Checkbox.java
@@ -47,6 +47,10 @@ public class Checkbox implements Serializable {
 		//
 	}
 
+	/**
+	 * This is an UUID
+	 * @return
+	 */
 	public String getCheckboxId() {
 		return checkboxId;
 	}
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java
index 989ec060c6f025d434333330aa405bfb3a61261a..71ace1756ace7e08fd785e15aaafe4905afd7e4b 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java
@@ -181,7 +181,7 @@ public class CheckListAssessmentController extends FormBasicController implement
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		setFormDescription("coach.desc");
-		setFormContextHelp("org.olat.course.nodes.cl.ui", "cl-coach-assessment.html", "help.hover.metadatas");
+		setFormContextHelp("org.olat.course.nodes.cl.ui", "cl-coach-assessment.html", "help.hover.coach.assessment");
 
 		if(formLayout instanceof FormLayoutContainer) {
 			FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout;
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentController.java
index 59c1a0d59913dbabfea793244c269de3e3cc5ec1..8f976d390878f67d5c700b9d669bcd22e641ad10 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentController.java
@@ -205,8 +205,9 @@ public class CheckboxAssessmentController extends FormBasicController {
 			TextElement pointEl = uifactory.addTextElement(name + "point", null, 5, pointVal, formLayout);
 			pointEl.setDisplaySize(5);
 			
-			
 			MultipleSelectionElement checkEl = uifactory.addCheckboxesHorizontal(name + "check", formLayout, onKeys, onValues, null);
+			checkEl.addActionListener(this, FormEvent.ONCHANGE);
+			checkEl.setUserObject(row);
 			if(checked != null && checked.length > currentCheckboxIndex
 					&& checked[currentCheckboxIndex] != null && checked[currentCheckboxIndex].booleanValue()) {
 				checkEl.select(onKeys[0], true);
@@ -261,6 +262,22 @@ public class CheckboxAssessmentController extends FormBasicController {
 				row.getPointEl().setVisible(hasPoints);
 			}
 			currentCheckboxIndex = nextCheckboxIndex;
+		} else if(source instanceof MultipleSelectionElement) {
+			MultipleSelectionElement checkEl = (MultipleSelectionElement)source;
+			if(checkEl.getUserObject() instanceof CheckboxAssessmentRow) {
+				CheckboxAssessmentRow row = (CheckboxAssessmentRow)checkEl.getUserObject();
+				if(row.getPointEl().isVisible()) {
+					boolean checked = checkEl.isAtLeastSelected(1);
+					if(checked) {
+						int nextCheckboxIndex = checkboxEl.getSelected();
+						Checkbox box = checkboxList.getList().get(nextCheckboxIndex);
+						String pointVal = AssessmentHelper.getRoundedScore(box.getPoints());
+						row.getPointEl().setValue(pointVal);
+					} else {
+						row.getPointEl().setValue("");
+					}
+				}
+			}
 		} else if(selectAllBoxButton == source) {
 			doSelectAll();
 		}
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java
index f153664a3442f2593718dff3148ebf578d20742a..9710390ed241a3279880073c25621034f8a80828 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java
@@ -25,6 +25,7 @@ import java.io.FileNotFoundException;
 import java.io.InputStream;
 
 import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.modules.bc.FolderConfig;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
@@ -47,6 +48,7 @@ import org.olat.core.logging.activity.ILoggingAction;
 import org.olat.core.logging.activity.StringResourceableType;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.vfs.LocalFolderImpl;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.VFSLeaf;
@@ -87,8 +89,9 @@ public class CheckboxEditController extends FormBasicController {
 	private final CheckboxManager checkboxManager;
 	
 	public CheckboxEditController(UserRequest ureq, WindowControl wControl,
+			OLATResourceable courseOres,
 			Checkbox checkbox, boolean newCheckbox, boolean withScore) {
-		this(ureq, wControl, null, null, checkbox, newCheckbox, withScore);
+		this(ureq, wControl, courseOres, null, checkbox, newCheckbox, withScore);
 	}
 	
 	public CheckboxEditController(UserRequest ureq, WindowControl wControl,
@@ -170,6 +173,10 @@ public class CheckboxEditController extends FormBasicController {
 		//
 	}
 	
+	public boolean isNewCheckbox() {
+		return newCheckbox;
+	}
+	
 	public Checkbox getCheckbox() {
 		return checkbox;
 	}
@@ -213,10 +220,7 @@ public class CheckboxEditController extends FormBasicController {
 		
 		if(Boolean.TRUE.equals(deleteFile)) {
 			checkbox.setFilename(null);
-			
-			ICourse course = CourseFactory.loadCourse(courseOres);
-			CourseEnvironment courseEnv = course.getCourseEnvironment();
-			VFSContainer container = checkboxManager.getFileContainer(courseEnv, courseNode, checkbox);
+			VFSContainer container = getFileContainer();
 			for (VFSItem chd:container.getItems()) {
 				chd.delete();
 			}
@@ -228,9 +232,7 @@ public class CheckboxEditController extends FormBasicController {
 			checkbox.setFilename(filename);
 			
 			try {
-				ICourse course = CourseFactory.loadCourse(courseOres);
-				CourseEnvironment courseEnv = course.getCourseEnvironment();
-				VFSContainer container = checkboxManager.getFileContainer(courseEnv, courseNode, checkbox);
+				VFSContainer container = getFileContainer();
 				VFSLeaf leaf = container.createChildLeaf(filename);
 				InputStream inStream = new FileInputStream(uploadedFile);
 				VFSManager.copyContent(inStream, leaf);
@@ -286,9 +288,7 @@ public class CheckboxEditController extends FormBasicController {
 	}
 	
 	private void doDownloadFile(UserRequest ureq) {
-		ICourse course = CourseFactory.loadCourse(courseOres);
-		CourseEnvironment courseEnv = course.getCourseEnvironment();
-		VFSContainer container = checkboxManager.getFileContainer(courseEnv, courseNode, checkbox);
+		VFSContainer container = getFileContainer();
 		VFSItem item = container.resolve(checkbox.getFilename());
 		if(item instanceof VFSLeaf) {
 			VFSMediaResource rsrc = new VFSMediaResource((VFSLeaf)item);
@@ -296,4 +296,17 @@ public class CheckboxEditController extends FormBasicController {
 			ureq.getDispatchResult().setResultingMediaResource(rsrc);
 		}
 	}
+	
+	private VFSContainer getFileContainer() {
+		VFSContainer container;
+		if(courseNode == null) {
+			File tmp = new File(FolderConfig.getCanonicalTmpDir(), checkbox.getCheckboxId());
+			container = new LocalFolderImpl(tmp);
+		} else {
+			ICourse course = CourseFactory.loadCourse(courseOres);
+			CourseEnvironment courseEnv = course.getCourseEnvironment();
+			container = checkboxManager.getFileContainer(courseEnv, courseNode, checkbox);
+		}
+		return container;
+	}
 }
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-assessment-checkbox.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-assessment-checkbox.html
index 640a060f4a371b893a7bc4b93cdbf2d2c99ec4fb..756f6d8f99cff728d59035de09347bb66739ea1a 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-assessment-checkbox.html
+++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-assessment-checkbox.html
@@ -1 +1,2 @@
-<p>$r.translate("chelp.assessment.checkbox.1")</p>
\ No newline at end of file
+<p>$r.translate("chelp.assessment.checkbox.1")</p>
+<p>$r.translate("chelp.assessment.checkbox.2")</p>
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html
index 393addf262ffcd2c713541e5ab504e3717c66a46..cc460dae2b7712343e279aaf073f22feff02a293 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html
+++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html
@@ -1 +1,7 @@
-<p>$r.translate("chelp.checkbox.1")</p>
\ No newline at end of file
+<p>$r.translate("chelp.checkbox.1")</p>
+<p>$r.translate("chelp.checkbox.2")</p>
+<p>$r.translate("chelp.checkbox.3")</p>
+<p>$r.translate("chelp.checkbox.4")</p>
+<p>$r.translate("chelp.checkbox.5")</p>
+<p>$r.translate("chelp.checkbox.6")</p>
+<p>$r.translate("chelp.checkbox.7")</p>
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-coach-assessment.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-coach-assessment.html
index 41a2782f7dbe631cd838ebbc88ae8c7089acdf5a..f2db66982b40c8771a0ca3d39349faa7be04b76f 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-coach-assessment.html
+++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-coach-assessment.html
@@ -1 +1,7 @@
-<p>$r.translate("chelp.coach.1")</p>
\ No newline at end of file
+<p>$r.translate("chelp.coach.1")</p>
+<p>$r.translate("chelp.coach.2")</p>
+<p>$r.translate("chelp.coach.3")</p>
+<p>$r.translate("chelp.coach.4")</p>
+<p>$r.translate("chelp.coach.5")</p>
+<p>$r.translate("chelp.coach.6")</p>
+<p>$r.translate("chelp.coach.7")</p>
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-config.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-config.html
index f2a7cbdfbbcbc7c390b26a3de3c1cd350a5375cc..5210a9d3a72ee8326b80fea2bca8475fd49eeb56 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-config.html
+++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-config.html
@@ -1 +1,14 @@
-<p>$r.translate("chelp.config.1")</p>
\ No newline at end of file
+<p>$r.translate("chelp.config.1")</p>
+<p>$r.translate("chelp.config.2")</p>
+<p>$r.translate("chelp.config.3")</p>
+<p>$r.translate("chelp.config.4")</p>
+<p>$r.translate("chelp.config.5")</p>
+<p>$r.translate("chelp.config.6")</p>
+<p>$r.translate("chelp.config.7")</p>
+<p>$r.translate("chelp.config.8")</p>
+<p>$r.translate("chelp.config.9")</p>
+<p>$r.translate("chelp.config.10")</p>
+<p>$r.translate("chelp.config.11")</p>
+<p>$r.translate("chelp.config.12")</p>
+<p>$r.translate("chelp.config.13")</p>
+<p>$r.translate("chelp.config.14")</p>
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-metadatas.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-metadatas.html
deleted file mode 100644
index be2c92a4d3862ae2f9bef5b20ab5cab1c55b905d..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-metadatas.html
+++ /dev/null
@@ -1 +0,0 @@
-<p>$r.translate("chelp.metadatas.1")</p>
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties
index b42ec5b3ef348bee280a5e20096d3493e7863816..f2a37ab9a4ec6af3c52959f33cd3c5a174df6564 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties
@@ -1,16 +1,42 @@
 #Mon Mar 02 09:54:04 CET 2009
-chelp.assessment.checkbox.1=Hilfe Bewertung per Checkbox
-chelp.config.1=Hilfe Konfiguration 1
-chelp.coach.1=Hilfe Tutoren 1
-chelp.cl-config.title=Konfiguration einer Checkliste Kursbaustein
-chelp.cl-checkbox.title=Konfiguration einer Checkbox
+chelp.assessment.checkbox.1=Bearbeiten Sie die von Ihnen betreuten Benutzer sortiert nach Checkbox. Dies reduziert die Fehleranfälligkeit gerade bei grossen Checklisten mit vielen Checkboxen.
+chelp.assessment.checkbox.2=Die Gruppenvorsortierung nehmen Sie in der Tabelle der Checklistenverwaltung vor. Sie können die Tabelle nach Vorname oder Nachname sortieren, um einen einfacheren Abgleich zwischen Teilnehmerliste und Checkliste zu ermöglichen.
+chelp.config.1=Der Kursbaustein bietet Ihnen die Möglichkeit, Check - oder Prüflisten in der Kursstruktur einzubetten. Als informationelle Arbeitshilfe, die Benutzer dabei unterstützt z.B. kleinere Aufgaben zu erledigen oder Informationen gesichert zu behalten, erlaubt die Checkliste das Führen von z.B. Anwesenheits- oder To Do-Listen.
+chelp.config.2=Pro Kursbaustein erstellen Sie eine Checkliste mit so vielen Checkboxen wie Sie benötigen.
+chelp.config.3=In diesem Tab können Sie bestimmen ob ein Abgabedatum für die Checkliste wirksam sein soll, und ob und wie die Kursteilnehmer bewertet werden. Die Einstellungen haben Einfluss auf das Bewertungsformular für die einzelnen Teilnehmer, das Ihnen im Bewertungswerkzeug des Kurses zur Verfügung steht. Achtung: Sobald eine Bewertung eines Kursteilnehmers stattgefunden hat, sollten Sie die Konfiguration nicht mehr verändern.
+chelp.config.4=<strong>$\:config.due.date</strong>: Wählen Sie hier ob die Checkliste zu einem bestimmten Datum ausgefüllt sein muss. Sie können die Liste nach Ablauf der Deadline für die Kursteilnehmer sperren. 
+chelp.config.5=<strong>Punktevergabe</strong>: Wenn Sie im Checkboxen-Tab den einzelnen Checkboxen Punkte zuweisen, können manuell oder automatisch jedem Benutzer Punkte bei Auswahl einer Checkbox vergeben werden. Wenn Sie diese Checkbox nicht markieren, werden keine Punkte vergeben.
+chelp.config.6=<strong>$\:config.points.min</strong>: Geben Sie hier die Anzahl Punkte ein, die ein Kursteilnehmer minimal erreichen kann. Diese Eingabe können Sie nicht machen, wenn Sie die Checkbox Punkte vergeben nicht markiert haben.
+chelp.config.7=<strong>$\:config.points.max</strong>: Geben Sie hier die Anzahl Punkte ein, die ein Kursteilnehmer maximal erreichen kann. Diese Eingabe können Sie nicht machen, wenn Sie die Checkbox Punkte vergeben nicht markiert haben.
+chelp.config.8=<strong>$\:config.passed</strong>: Wenn Sie die Checkbox markieren, wird dem Kursteilnehmer ein Bestanden resp. Nicht bestanden angezeigt. Wenn Sie diese Checkbox nicht ankreuzen, wird nichts angezeigt.
+chelp.config.9=<strong>$\:config.output</strong>: Sie haben die Möglichkeit, mit «Automatisch durch Punkteschwelle», «Automatisch bei Anzahl Checkboxen» oder «Manuell durch Betreuer» zu bestimmen, ob das Bestanden resp. Nicht bestanden aufgrund einer Punkteschwelle resp. einer bestimmten Anzahl markierter Checkboxen automatisch vergeben wird oder ob der Betreuer dies manuell für die zu bewertenden Benutzer vergeben soll. Diese Auswahl können Sie nicht machen, wenn Sie die Checkbox Bestanden/Nicht bestanden ausgeben nicht markiert haben.
+chelp.config.10=<strong>$\:config.cutvalue</strong>: Geben Sie hier die Anzahl Punkte ein, die minimal notwendig ist, damit ein Kursteilnehmer ein Bestanden erhält. Unterhalb dieser Schwelle erhält der Teilnehmer ein Nicht bestanden. Diese Eingabe können Sie nicht machen, wenn Sie im Feld Art der Ausgabe: «Manuell durch Betreuer» oder «Automatisch bei Anzahl Checkboxen» gewählt haben.
+chelp.config.11=<strong>$\:sum.cutvalue</strong>: Geben Sie hier die Anzahl Checkboxen an, die minimal markiert sein müssen, damit ein Kursteilnehmer ein Bestanden erhält. Diese Eingabe können Sie nicht machen, wenn Sie im Feld Art der Ausgabe: «Manuell durch Betreuer» oder «Automatisch durch Punkteschwelle» gewählt haben.
+chelp.config.12=<strong>$\:config.comment</strong>: Wenn Sie diese Checkbox markieren, haben Sie bei der Bewertung die Möglichkeit, jedem Benutzer einen individuellen Kommentar zu geben.
+chelp.config.13=<strong>$\:config.tip.user</strong>: Geben Sie hier einen Text ein, der allen Kursteilnehmern angezeigt wird, wenn sie den Kursbaustein klicken.
+chelp.config.14=<strong>$\:config.tip.coach</strong>: Geben Sie hier einen Text ein, der den Betreuern des Kurses angezeigt wird, wenn sie die Kursteilnehmer bewerten.
+chelp.coach.1=Mit der Checklistenverwaltung sehen Sie alle Checklisten der von Ihnen betreuten Benutzer auf einen Blick und können diese bearbeiten, sowie den aktuellen Stand als PDF ausdrucken. Die Konfiguration der Checkliste und der einzelnen Checkboxen nehmen Sie im Kurseditor vor. In der Tabelle finden Sie alle bereits gewählten Checkboxen über alle Benutzer.
+chelp.coach.2=Es stehen Ihnen drei Bearbeitungsmodi zur Verfügung. Entweder bearbeiten Sie einzelne Teilnehmer über den Link "<strong>$\:table.header.edit.checkbox</strong>" rechts vom Benutzernamen, pro Checkbox über die Schaltfläche "<strong>$\:box.assessment</strong>" oder alle Checkboxen aller Teilnehmer über die Schaltfläche "<strong>$org.olat.core\:edit</strong>".
+chelp.coach.3=Über den Link "<strong>$\:table.header.edit.checkbox</strong>" öffnen Sie eine Nutzerspezifische Checkliste, die Ihnen erlaubt einzelne Checkboxen zu markieren. Öffnen Sie den Tab "<strong>$\:assessment</strong>", um direkten Zugriff auf das Bewertungsformular zu erhalten. Änderungen an der Bewertung können Sie ebenfalls im Bewertungswerkzeug vornehmen. 
+chelp.coach.4=Ein Klick auf die Schaltfläche "<strong>$\:box.assessment</strong>" öffnet eine Liste aller Kursteilnehmer pro Checkbox. Für mehr Informationen dazu navigieren Sie bitte zur entsprechenden Kontexthilfe.  
+chelp.coach.5=Über "<strong>$org.olat.core\:edit</strong>" können Sie alle Checkboxen über alle Kursteilnehmer in der Tabelle bearbeiten.
+chelp.coach.6=Zusätzlich können Sie mit Hilfe der Schaltfläche "<strong>$\:pdf.export</strong>" den aktuellen Stand der Checkliste über alle Teilnehmer als PDF ausdrucken. Im PDF finden Sie noch die Spalte Unterschrift, mit der Sie den Teilnehmer die Richtigkeit des Dokuments bestätigen lassen können. 
+chelp.coach.7="<strong>$\:pdf.export.checked</strong>" erstellt ein PDF, das pro Checkbox eine Tabelle mit jenen Teilnehmern enthält, die die entsprechende Checkbox bereits markiert haben.
+chelp.cl-config.title=Checkliste: Konfiguration
+chelp.cl-checkbox.title=Checkliste: Checkboxen bearbeiten
 chelp.cl-checkbox-template.title=Checklisten Vorlage
 chelp.cl-template-configuration.title=Checklistengenerator
-chelp.cl-coach-assessment.title=Bewertung einer Checklist
+chelp.cl-coach-assessment.title=Checkliste: Bewertung und Verwaltung
 chelp.cl-metadatas.title=Listen Metadaten
 chelp.cl-st-config.title=Strukturdaten
-chelp.cl-assessment-checkbox.title=Bewertung per checkbox
-chelp.checkbox.1=Hilfe Checkboxen
+chelp.cl-assessment-checkbox.title=Checkliste: Per Box Bewertung
+chelp.checkbox.1=Erstellen und bearbeiten Sie hier die Checkboxen für die konfigurierte Checkliste. In der Tabelle finden Sie die bereits in dieser Checkliste bestehenden Checkboxen. Klicken Sie mit der Maus auf die Schaltfläche \u201ECheckbox hinzufügen\u201C um eine neue Checkbox zu erstellen. Es öffnet sich ein neue Eingabemaske. 
+chelp.checkbox.2=<strong>$\:checkbox.title</strong>: Geben Sie hier einen aussagekräftigen kurzen Titel für die Checkbox ein.
+chelp.checkbox.3=<strong>$\:release</strong>: Mit der Freigabeeinstellung bestimmen Sie wer die Checkbox markieren kann. Benutzer und Betreuer gestattet sowohl dem Kursteilnehmer wie auch dem Betreuer die Selektion der Checkbox. Wählen Sie jedoch Nur Betreuer, kann der Kursteilnehmer die Checkbox zwar sehen, sie aber nicht auswählen. 
+chelp.checkbox.4=<strong>$\:label</strong>: Sie können zwischen 5 verschiedenen Checkbox-Arten auswählen: Erledigt, Bearbeitet, Vorgeführt, Kontrolliert und Anwesend. Wählen Sie passendste aus. 
+chelp.checkbox.5=<strong>$\:points</strong>: Legen Sie fest ob Punkte für markierte Checkboxen vergeben werden und wie viele. 
+chelp.checkbox.6=Die <strong>$\:description</strong> wird in der Checkliste zusammen mit dem Titel, der Anzahl Punkte (falls ausgewählt) sowie der gegebenenfalls hochgeladenen Datei rechts von der Checkbox angezeigt. 
+chelp.checkbox.7=Falls benötigt, können Sie für die Kursteilnehmer noch eine <strong>Datei</strong> zum Download hinzufügen.
 chelp.checkbox.template.1=Hilfe Checklisten Vorlage
 chelp.metadatas.1=Hilfe Metadaten
 chelp.template.config.1=Hilfe Checklistengenerator
@@ -67,14 +93,14 @@ passed.yes=$org.olat.course.nodes.ms\:passed.yes
 info.title=$org.olat.course.nodes.ms\:info.title
 
 form.error.wrongFloat=$org.olat.course.nodes.ms\:form.error.wrongFloat
-help.hover.config=Hilfe zur Konfiguration einer Checkliste Kursbaustein
-help.hover.checkbox=Hilfe zur Erstellung einer Checkbox Liste
+help.hover.config=Hilfe zur Konfiguration
+help.hover.checkbox=Hilfe zur Checkboxen bearbeiten
 help.hover.checkboxtemplate=Hilfe zur Checklisten Vorlage
 help.hover.choach=Hilfe zur Bewertung einer Checkbox Liste
 help.hover.templateconfiguration=Hilfe zur Checklistengenerator
-help.hover.metadatas=Hilfe zur Listen Metadaten
+help.hover.coach.assessment=Hilfe zur Bewertung und Verwaltung
 help.hover.structurenodeconfig=Hilfe zur Strukturdaten Konfiguration
-help.hover.assessment.checkbox=Hilfe zur Bewertungs per Checkbox
+help.hover.assessment.checkbox=Hilfe zur Bewertungs per Box
 assessment.checkbox.description=Bewertung pro Checkbox: Bearbeiten Sie hier die Kreuze ihrer betreuten Teilnehmer nach Checkbox.
 table.header.title=$\:checkbox.title
 table.header.edit.checkbox=Bearbeiten
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_en.properties
index 4406b9f34d9440284039689d0fa5952a7d83e36f..952ca997239c88f394af7f875e7d7a162a8a25b8 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_en.properties
@@ -1,6 +1,7 @@
 #Mon Mar 03 11:18:52 CET 2014
 add.checkbox=Add checkbox
 assessment=Assessment
+assessment.checkbox.description=Edit per Checkbox: Apply the checkbox filter to edit the same checkbox across all participants.
 award.point.on=Grant score on check
 box.check=Check
 box.points=Score
@@ -10,6 +11,40 @@ checkbox.title=Title
 checklist=Checklists
 checklist.point.example=Points (min\: {0} / max\: {1})
 chelp.cl-checkbox.title=Checklist configuration
+chelp.assessment.checkbox.1=Access the course participants supervised by you filtered by checkbox. This can reduce the error rate significantly, especially for large checklists with many checkboxes.
+chelp.assessment.checkbox.2=Filter the table beforehand by group. You can then sort by either first or last name, to facilitate matching your participants list with the checklist.
+chelp.config.1=The course module enables you to embed checklists into the course structure. The checklist as an informational tool assists users in e.g. carrying out smaller tasks, keeping an attendance list or maintaining a To-Do list.
+chelp.config.2=For each course element, create a checklist with as many checkboxes as needed.
+chelp.config.3=In this tab, you can determine whether a deadline should be effective for the checklist and if and how course participants are assessed. These settings have an impact on the assessment which is at your disposal in the assessment tool. Attention: Once an assessment has taken place, you should not change the configuration anymore.
+chelp.config.4=<strong>$\:config.due.date</strong>: Select here whether the checklist must be completed by a certain date. You can lock the list for participants after the expiry of the deadline.
+chelp.config.5=<strong>$\:config.points</strong>: If you assign points to the individual checkboxes in the \u201ECheckboxes\u201C tab, you can manually or automatically award points to users for marked check boxes. If you do not check this box no score will be allocated.
+chelp.config.6=<strong>$\:config.points.min</strong>: Please enter the minimum score a course participant can achieve. You cannot do this if you have not checked the box Score granted.
+chelp.config.7=<strong>$\:config.points.max</strong>: Please enter the maximum score a course participant can achieve. You cannot do this if you have not checked the box Score granted.
+chelp.config.8=<strong>$\:config.passed</strong>: If you check this box a Passed or Failed will be displayed. If you do not check it nothing will be displayed.
+chelp.config.9=<strong>$\:config.output</strong>: By means of «Automatic (using cut value)», «Automatic (using number of checks)» or «Manually by tutor» you have the possibility to decide if Passed or Failed is allocated either automatically based on a cut value or if the tutor should allocate it manually. You cannot do this if you have not checked the box Display passed/failed.
+chelp.config.10=<strong>$\:config.cutvalue</strong>: Please enter the minimum number of points necessary to get a Passed . Below this cut value participants get a Failed. You cannot do this if you have selected «Manually by tutor» or «Automatic (using number of checks)» in the field Type of display.
+chelp.config.11=<strong>$\:sum.cutvalue</strong>: Please enter the minimum number of checked boxes necessary to get a Passed. You cannot do this if you have selected «Manually by tutor» or «Automatic (using cut value)» in the field Type of display.
+chelp.config.12=<strong>$\:config.comment</strong>: When checking this box you have the possibility to make an individual comment regarding your assessment.
+chelp.config.13=<strong>$\:config.tip.user</strong>: Please enter a text to be displayed to all participants whenever they click on this course element.
+chelp.config.14=<strong>$\:config.tip.coach</strong>: Please enter a text to be displayed to the tutors of the course when assessing participants.
+chelp.checkbox.1=Create and edit checkboxes for your checklist. The table displays the already existing/created boxes for this course element. Click the button \u201EAdd checkbox\u201C in order to create a new checkbox. A form opens in a pop-up.
+chelp.checkbox.2=<strong>$\:checkbox.title</strong>: Enter a meaningful short title for the new checkbox.
+chelp.checkbox.3=<strong>$\:release</strong>: Define who can actually mark the box as selected. Participant and coach allows for both to check the box. Once Coach only is selected, participants will see the box but won\u2018t be able to select it. 
+chelp.checkbox.4=<strong>$\:label</strong>: You can select from 5 different types of checkboxes: Done, Processed, Presented, Verified and Attendant. Choose the one most appropriate for your purpose.
+chelp.checkbox.5=<strong>$\:points</strong>:
+chelp.checkbox.6=The <strong>description</strong> is shown in the checklist to the right of the checkbox along with the title, the score (if configured) and the uploaded file, if applicable.
+chelp.checkbox.7=If necessary, you can add a <strong>file</strong> for the participants to download.
+chelp.coach.1=Manage the checklists of all course participants coached by you, and print overviews. Configuration of the checklist and the individual checkboxes are conducted in the course editor. The table shows the checked boxes for all participants.
+chelp.coach.2=There are three different editing modes at your disposal. You can either edit the checkboxes of one individual participant via the "<strong>$\:table.header.edit.checkbox</strong>" link on the right side of the table, edit one particular checkbox across all participants using the \u201EEdit per checkbox\u201C button, or edit all checkboxes across all participants directly in the actual table using the "<strong>$org.olat.core\:edit</strong>" button at the bottom of the table.
+chelp.coach.3=Using the "<strong>$\:table.header.edit.checkbox</strong>" link, a user-specific checklist opens, allowing you to de/select single checkboxes. Select the "<strong>$\:assessment</strong>" tab in order to directly access the assessment form. You can also access the assessment form via the assessment tool.
+chelp.coach.4=Clicking the "<strong>$\:box.assessment</strong>" button opens a list of all participants filtered by checkbox. Please read the corresponding context help for more information. You can edit all checkboxes across all participants in the table by using the \u201EEdit\u201C button. 
+chelp.coach.5=You can also download PDFs for offline use. The "<strong>$\:pdf.export</strong>" button opens a PDF file with the checklists current state across all your supervised participants. The PDF includes a signature column.
+chelp.coach.6=Clicking the "<strong>$\:pdf.export.checked</strong>" creates a PDF containing a table per checkbox with all those participants that already checked the box.
+chelp.coach.7=
+chelp.cl-config.title=Checklist: configuration
+chelp.cl-assessment-checkbox.title=Checklist: edit per checkbox
+chelp.cl-coach-assessment.title=Checklist: assess and manage checklists
+chelp.cl-checkbox.title=Checklist: edit checkboxes
 coach.desc=In the list below you will find all participants of this course coached by you. Select "$\:table.header.edit.checkbox" in order to change check marks or the score of a participant.
 coach.due.date.desc=Please notice that this checklist has a deadline. As a coach, you should make changes only after the deadline expiration.
 comment.title=$org.olat.course.nodes.ms\:comment.title
@@ -36,9 +71,14 @@ config.warning.inuse=Users have already checked one or more boxes. Changing scor
 config.checkbox.description=Click "$\:add.checkbox" to create a new checkbox or select "$org.olat.core\:edit" to configure an existing checkbox.
 config.description=Select whether a deadline applies to the checklist, after which it will be locked for users. Information on passed status or score can be activated here.
 description=Description
+done.by=Completed by:
 file=File
 filter.all=Show all
 form.error.wrongFloat=$org.olat.course.nodes.ms\:form.error.wrongFloat
+help.hover.checkbox=Help regarding checkboxes edition
+help.hover.config=Help regarding configuration
+help.hover.coach.assessment=Help regarding assessment and management of checklists
+help.hover.assessment.checkbox=help regarding assessment per box
 info.title=$org.olat.course.nodes.ms\:info.title
 label=Label
 label.controlled=Verified
@@ -72,6 +112,8 @@ score.noscoreinfoyet=$org.olat.course.nodes.ms\:score.noscore
 score.title=$org.olat.course.nodes.ms\:score.title
 score.yourscore=$org.olat.course.nodes.ms\:score.yourscore
 selectall=Select all
+select.checkbox=Checkbox filter
+signature=Signature
 sum.cutvalue=Number of checks needed to pass
 table.header.title=$\:checkbox.title
 table.header.edit.checkbox=Edit
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckListStepRunnerCallback.java b/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckListStepRunnerCallback.java
index 426769fe55f8e195ef089e15aa30705919054e29..0e3348fbc932d8965fd6030c91682029d89f2737 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckListStepRunnerCallback.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckListStepRunnerCallback.java
@@ -19,9 +19,12 @@
  */
 package org.olat.course.nodes.cl.ui.wizard;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.modules.bc.FolderConfig;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.wizard.Step;
@@ -29,7 +32,13 @@ import org.olat.core.gui.control.generic.wizard.StepRunnerCallback;
 import org.olat.core.gui.control.generic.wizard.StepsMainRunController;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.resource.OresHelper;
+import org.olat.core.util.vfs.LocalFolderImpl;
+import org.olat.core.util.vfs.VFSContainer;
+import org.olat.core.util.vfs.VFSItem;
+import org.olat.core.util.vfs.VFSLeaf;
+import org.olat.core.util.vfs.VFSManager;
 import org.olat.course.CourseFactory;
 import org.olat.course.ICourse;
 import org.olat.course.nodes.CheckListCourseNode;
@@ -37,8 +46,10 @@ import org.olat.course.nodes.CourseNode;
 import org.olat.course.nodes.CourseNodeConfiguration;
 import org.olat.course.nodes.CourseNodeFactory;
 import org.olat.course.nodes.STCourseNode;
+import org.olat.course.nodes.cl.CheckboxManager;
 import org.olat.course.nodes.cl.model.Checkbox;
 import org.olat.course.nodes.cl.model.CheckboxList;
+import org.olat.course.run.environment.CourseEnvironment;
 import org.olat.course.run.scoring.ScoreCalculator;
 import org.olat.course.tree.CourseEditorTreeNode;
 import org.olat.modules.ModuleConfiguration;
@@ -64,6 +75,8 @@ public class CheckListStepRunnerCallback implements StepRunnerCallback {
 		ModuleConfiguration templateConfig = data.getModuleConfiguration();
 		
 		ICourse course = CourseFactory.getCourseEditSession(courseOres.getResourceableId());
+		CourseEnvironment courseEnv = course.getCourseEnvironment();
+		CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class);
 		
 		CourseNode structureNode = createCourseNode(data.getStructureShortTitle(), data.getStructureTitle(), data.getStructureObjectives(), "st");
 		CourseEditorTreeNode parentNode = (CourseEditorTreeNode)course.getEditorTreeModel().getRootNode();
@@ -73,7 +86,7 @@ public class CheckListStepRunnerCallback implements StepRunnerCallback {
 		List<String> nodesIdent = new ArrayList<>();
 		for(CheckListNode node:nodes) {
 			String title = node.getTitle();
-			CourseNode checkNode = createCourseNode(title, title, null, "checklist");
+			CheckListCourseNode checkNode = (CheckListCourseNode)createCourseNode(title, title, null, "checklist");
 			nodesIdent.add(checkNode.getIdent());
 
 			ModuleConfiguration config = checkNode.getModuleConfiguration();
@@ -82,7 +95,19 @@ public class CheckListStepRunnerCallback implements StepRunnerCallback {
 			CheckboxList checkboxList = new CheckboxList();
 			List<Checkbox> boxes = new ArrayList<>();
 			for(Checkbox templateBox:templateCheckbox) {
-				boxes.add(templateBox.clone());
+				Checkbox checkbox = templateBox.clone();
+				boxes.add(checkbox);
+				
+				if(StringHelper.containsNonWhitespace(templateBox.getFilename())) {
+					File path = new File(FolderConfig.getCanonicalTmpDir(), templateBox.getCheckboxId());
+					VFSContainer tmpContainer = new LocalFolderImpl(path);
+					VFSItem item = tmpContainer.resolve(templateBox.getFilename());
+					if(item instanceof VFSLeaf) {
+						VFSContainer container = checkboxManager.getFileContainer(courseEnv, checkNode, checkbox);
+						VFSManager.copyContent(tmpContainer, container);
+						tmpContainer.deleteSilently();
+					}
+				}
 			}
 			checkboxList.setList(boxes);
 			config.set(CheckListCourseNode.CONFIG_KEY_CHECKBOX, checkboxList);
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckList_1_CheckboxStep.java b/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckList_1_CheckboxStep.java
index 73da85b413a075c3eca9ef4c83f09e286e62a8b8..21b40d0dd0af2d44f11afdbdf5a19fcaebdcb229 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckList_1_CheckboxStep.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckList_1_CheckboxStep.java
@@ -26,6 +26,8 @@ import org.olat.core.gui.control.generic.wizard.BasicStep;
 import org.olat.core.gui.control.generic.wizard.PrevNextFinishConfig;
 import org.olat.core.gui.control.generic.wizard.StepFormController;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
+import org.olat.core.id.OLATResourceable;
+import org.olat.core.util.resource.OresHelper;
 
 /**
  * 
@@ -35,8 +37,11 @@ import org.olat.core.gui.control.generic.wizard.StepsRunContext;
  */
 public class CheckList_1_CheckboxStep extends BasicStep {
 	
-	public CheckList_1_CheckboxStep(UserRequest ureq) {
+	private final OLATResourceable courseOres;
+	
+	public CheckList_1_CheckboxStep(UserRequest ureq, OLATResourceable courseOres) {
 		super(ureq);
+		this.courseOres = OresHelper.clone(courseOres);
 		setNextStep(new CheckList_2_ConfigurationStep(ureq));
 		setI18nTitleAndDescr("checkbox.template", "checkbox.template");
 	}
@@ -51,6 +56,6 @@ public class CheckList_1_CheckboxStep extends BasicStep {
 		if(!runContext.containsKey("data")) {
 			runContext.put("data", new GeneratorData());
 		}
-		return new CheckboxListStepController(ureq, wControl, form, runContext);
+		return new CheckboxListStepController(ureq, wControl, form, runContext, courseOres);
 	}
 }
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckboxListStepController.java b/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckboxListStepController.java
index abbf37128ff16094a6340b5d9edafe6571fd7077..eb0eac849032e3e5412234cd4983a2ff1cd8af94 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckboxListStepController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/CheckboxListStepController.java
@@ -44,6 +44,7 @@ import org.olat.core.gui.control.generic.closablewrapper.CloseableModalControlle
 import org.olat.core.gui.control.generic.wizard.StepFormBasicController;
 import org.olat.core.gui.control.generic.wizard.StepsEvent;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
+import org.olat.core.id.OLATResourceable;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.cl.model.Checkbox;
 import org.olat.course.nodes.cl.ui.CheckListEditController;
@@ -66,11 +67,14 @@ public class CheckboxListStepController extends StepFormBasicController {
 	private CheckboxEditController editCtrl;
 	
 	private final GeneratorData data;
+	private final OLATResourceable courseOres;
 
-	public CheckboxListStepController(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext) {
+	public CheckboxListStepController(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext,
+			OLATResourceable courseOres) {
 		super(ureq, wControl, rootForm, runContext, LAYOUT_VERTICAL, null);
 		setTranslator(Util.createPackageTranslator(CheckListEditController.class, getLocale(), getTranslator()));
 		
+		this.courseOres = courseOres;
 		data = (GeneratorData)getFromRunContext("data");
 
 		initForm(ureq);
@@ -136,7 +140,7 @@ public class CheckboxListStepController extends StepFormBasicController {
 				String cmd = se.getCommand();
 				if("edit".equals(cmd)) {
 					Checkbox row = model.getObject(se.getIndex());
-					doOpenEdit(ureq, row, false, "edit.checkbox");
+					doOpenEdit(ureq, row, false, translate("edit.checkbox"));
 				}
 			}
 		}
@@ -149,7 +153,7 @@ public class CheckboxListStepController extends StepFormBasicController {
 			cleanUp();
 		} else if(editCtrl == source) {
 			if(event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) {
-				doEdit(editCtrl.getCheckbox());
+				doEdit(editCtrl.getCheckbox(), editCtrl.isNewCheckbox());
 			} else if("delete".equals(event.getCommand())) {
 				doDelete(editCtrl.getCheckbox());
 			}
@@ -166,10 +170,12 @@ public class CheckboxListStepController extends StepFormBasicController {
 		boxTable.reset();
 	}
 	
-	private void doEdit(Checkbox checkbox) {
-		List<Checkbox> boxList = data.getCheckboxList();
-		boxList.add(checkbox);
-		model.setObjects(boxList);
+	private void doEdit(Checkbox checkbox, boolean newCheckbox) {
+		if(newCheckbox) {
+			List<Checkbox> boxList = data.getCheckboxList();
+			boxList.add(checkbox);
+			model.setObjects(boxList);
+		}
 		setFormWarning(null);
 		boxTable.reset();
 	}
@@ -177,7 +183,7 @@ public class CheckboxListStepController extends StepFormBasicController {
 	private void doOpenEdit(UserRequest ureq, Checkbox checkbox, boolean newCheckbox, String title) {
 		if(editCtrl != null) return;
 		
-		editCtrl = new CheckboxEditController(ureq, getWindowControl(), checkbox, newCheckbox, true);
+		editCtrl = new CheckboxEditController(ureq, getWindowControl(), courseOres, checkbox, newCheckbox, true);
 		listenTo(editCtrl);
 
 		Component content = editCtrl.getInitialComponent();
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/StructureNodeStepController.java b/src/main/java/org/olat/course/nodes/cl/ui/wizard/StructureNodeStepController.java
index c62d348045908d8128d37438821c348a4a0eda8c..0b489b67ee426f5663bbd54cba9ebc5fc421c045 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/StructureNodeStepController.java
+++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/StructureNodeStepController.java
@@ -20,12 +20,14 @@
 package org.olat.course.nodes.cl.ui.wizard;
 
 import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
 import org.olat.core.gui.components.form.flexible.elements.RichTextElement;
 import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
 import org.olat.core.gui.components.form.flexible.elements.TextElement;
 import org.olat.core.gui.components.form.flexible.impl.Form;
+import org.olat.core.gui.components.form.flexible.impl.FormEvent;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.wizard.StepFormBasicController;
@@ -85,16 +87,19 @@ public class StructureNodeStepController extends StepFormBasicController {
 		
 		String[] passedValues = new String[]{ "" };
 		passedEl = uifactory.addCheckboxesHorizontal("passed", "config.passed", formLayout, onKeys, passedValues, null);
-		
+		passedEl.addActionListener(this, FormEvent.ONCHANGE);
 
 		String[] outputValues = new String[]{
-			translate("config.output.cutvalue"), translate("config.output.sum")
+			translate("config.output.cutvalue"), translate("scform.passedtype.inherit")
 		};
 		outputEl = uifactory.addRadiosVertical("output", "config.output", formLayout, outputKeys, outputValues);
 		outputEl.select(outputKeys[0], true);
+		outputEl.addActionListener(this, FormEvent.ONCHANGE);
+		outputEl.setVisible(false);
 
 		cutValueEl = uifactory.addTextElement("cutvalue", "config.cutvalue", 4, null, formLayout);
 		cutValueEl.setDisplaySize(5);
+		cutValueEl.setVisible(false);
 	}
 
 	@Override
@@ -113,7 +118,7 @@ public class StructureNodeStepController extends StepFormBasicController {
 		}
 		
 		cutValueEl.clearError();
-		if(!StringHelper.containsNonWhitespace(cutValueEl.getValue())) {
+		if(cutValueEl.isVisible() && !StringHelper.containsNonWhitespace(cutValueEl.getValue())) {
 			try {
 				Float.parseFloat(cutValueEl.getValue());
 			} catch (NumberFormatException e) {
@@ -122,7 +127,7 @@ public class StructureNodeStepController extends StepFormBasicController {
 			}
 		}
 		
-		if(outputEl.isSelected(0)) {
+		if(outputEl.isVisible() && outputEl.isSelected(0)) {
 			if(!StringHelper.containsNonWhitespace(cutValueEl.getValue())) {
 				cutValueEl.setErrorKey("form.legende.mandatory", null);
 				allOk &= false;
@@ -132,6 +137,23 @@ public class StructureNodeStepController extends StepFormBasicController {
 		return allOk & super.validateFormLogic(ureq);
 	}
 
+	@Override
+	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
+		if(passedEl == source) {
+			boolean selected = passedEl.isAtLeastSelected(1);
+			cutValueEl.setVisible(selected);
+			outputEl.setVisible(selected);
+			if(selected) {
+				boolean cutValueSelected = outputEl.isSelected(0);
+				cutValueEl.setVisible(cutValueSelected);
+			}
+		} else if(outputEl == source) {
+			boolean cutValueSelected = outputEl.isSelected(0);
+			cutValueEl.setVisible(cutValueSelected);
+		}
+		super.formInnerEvent(ureq, source, event);
+	}
+
 	@Override
 	protected void formOK(UserRequest ureq) {
 		data.setStructureTitle(titleEl.getValue());
@@ -140,7 +162,7 @@ public class StructureNodeStepController extends StepFormBasicController {
 		
 		data.setPoints(pointsEl.isAtLeastSelected(1));
 		data.setPassed(passedEl.isAtLeastSelected(1));
-		if(outputEl.isSelected(0)) {
+		if(outputEl.isVisible() && outputEl.isSelected(0)) {
 			Float cutValue = new Float(Float.parseFloat(cutValueEl.getValue()));
 			data.setCutValue(cutValue);
 		}
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_de.properties
index df6756fc7c83540fc1d445d7a67af011ee702127..b972b082b250341449ef74adf95d01999dafb9d0 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_de.properties
@@ -12,3 +12,4 @@ nodeConfigForm.displaytitle=$org.olat.course.editor\:nodeConfigForm.displaytitle
 nodeConfigForm.learningobjectives=$org.olat.course.editor\:nodeConfigForm.learningobjectives
 points.sum.checklists=Summe Checklisten
 error.needone.checklist=Sie brauchen mindestens ein Checkbox
+scform.passedtype.inherit=$org.olat.course.nodes.st\:scform.passedtype.inherit
diff --git a/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_en.properties
index e73ebb2bbb3d6c1d26c13359b434ed38209ef32f..a9f6fe536307c9b1b5117b70d34b8bf182fd405a 100644
--- a/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/cl/ui/wizard/_i18n/LocalStrings_en.properties
@@ -1,2 +1,5 @@
 #Fri Jan 21 15:27:07 CET 2011
-
+nodeConfigForm.menutitle=$org.olat.course.editor\:nodeConfigForm.menutitle
+nodeConfigForm.displaytitle=$org.olat.course.editor\:nodeConfigForm.displaytitle
+nodeConfigForm.learningobjectives=$org.olat.course.editor\:nodeConfigForm.learningobjectives
+scform.passedtype.inherit=$org.olat.course.nodes.st\:scform.passedtype.inherit
\ No newline at end of file