diff --git a/src/main/java/de/bps/course/nodes/den/_i18n/LocalStrings_it.properties b/src/main/java/de/bps/course/nodes/den/_i18n/LocalStrings_it.properties
index 879f9a4b44ca2d135e31b764e77382263ac97177..5a618dd32b448e8a15309e0213f5ff3dba49ccb0 100644
--- a/src/main/java/de/bps/course/nodes/den/_i18n/LocalStrings_it.properties
+++ b/src/main/java/de/bps/course/nodes/den/_i18n/LocalStrings_it.properties
@@ -1,29 +1,4 @@
-#Mon Jan 17 16:09:57 CET 2011
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+#Thu Feb 09 09:18:23 CET 2017
 condition.accessibility.title=Accesso
 config.create.dates=Creare impegni
 config.dates=Gestire termini
@@ -69,7 +44,7 @@ dates.table.participant.firstname=Nome
 dates.table.participant.lastname=Cognome
 dates.table.participant.manage=Gestire
 dates.table.participant.name=Nome
-dates.table.participant.username=Nome d'utente
+dates.table.participant.username=Nome utente
 dates.table.participants.num=Numero partecipanti
 dates.table.reserved=Posti
 dates.table.run.enrolled=Iscritto
@@ -92,7 +67,6 @@ form.error.format=Immissione errata
 form.error.notempty=Completare, p.f.
 guestnoaccess.message=Questa parte del corso non \u00E8 accessibile agli ospiti. <p>Per ottenere l'accesso a questa parte Lei deve autenticarsi presso un'universit\u00E0 o registrarsi in OLAT.
 guestnoaccess.title=Accesso negato agli ospiti
-
 mail.participants.add.body=*** Questo \u00E8 un messaggio automatico. Non risponda a questo messaggio, p.f. *** \n\nLei \u00E8 stata/o iscritta/o davon {0} {1} ({2}) per un impegno\: \n\nNome impegno\: {4}
 mail.participants.add.subject=Attribuzione impegno\: {4}. \u00C8 stata/o iscritta/o.
 mail.participants.remove.body=*** Questo \u00E8 un messaggio automatico. Non risponda a questo messaggio, p.f. *** \r\n\r\nLei \u00E8 stata/o disiscritta/o da {0} {1} ({2}) per l'impegno\: \r\n\r\nNome impegno\: {4}
diff --git a/src/main/java/org/olat/admin/privacy/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/admin/privacy/_i18n/LocalStrings_it.properties
index 11227f01efdbf7ceb67776475da03d532f49a1c5..fb91c5a2e5c2fd0258d4b574f38cc668a6b09f19 100644
--- a/src/main/java/org/olat/admin/privacy/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/admin/privacy/_i18n/LocalStrings_it.properties
@@ -1,6 +1,12 @@
-#Tue Feb 07 14:03:44 CET 2017
+#Fri Feb 10 09:00:13 CET 2017
 admin.menu.title=Privacy
 admin.menu.title.alt=Privacy
 admin.props=Propriet\u00E0 amministrative
 admin.props.administrators=Amministratori di sistema
 admin.props.authors=Autori di corso
+admin.props.desc=Ruoli di sistema per i quali le propriet\u00E0 utente amministrative sono visibili, ad esempio nelle maschere di ricerca utente o negli elenchi. Quali siano le propriet\u00E0 utente considerate come amministrative \u00E8 definito nella configurazione delle propriet\u00E0 utente.
+admin.props.groupmanagers=Amministratori di gruppo
+admin.props.usermanagers=Amministratori degli utenti
+admin.props.users=Studente
+last.login=Visibilit\u00E0 dell'ultima data di visita
+tunnel.cbb=Permettere la condivisione dei dati utente
diff --git a/src/main/java/org/olat/admin/properties/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/admin/properties/_i18n/LocalStrings_it.properties
index a3ef9b0b3783493616fc42ee4a436533c070cf19..71c3477c366e1c33c102d304e598ecdf51456b3a 100644
--- a/src/main/java/org/olat/admin/properties/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/admin/properties/_i18n/LocalStrings_it.properties
@@ -1,4 +1,4 @@
-#Thu Jun 17 19:44:29 CEST 2010
+#Thu Feb 09 09:17:58 CET 2017
 choose=Selezione
 close=Chiudere
 cmd.usersearch=Cercare nome d'utente
@@ -10,7 +10,7 @@ searchform.category=Categoria
 searchform.propertyname=Nome
 searchform.resourcetypeid=Id del tipo di risorsa
 searchform.resoursetypename=Nome del tipo di risorsa
-searchform.username=Nome d'utente
+searchform.username=Nome utente
 table.header.category=Categoria
 table.header.creationdate=creationDate
 table.header.desc=Descrizione
@@ -22,4 +22,4 @@ table.header.resourceTypeId=Id del tipo
 table.header.resourceTypeName=Tipo
 table.header.stringValue=stringValue
 table.header.textValue=textValue
-table.header.userName=Nome d'utente
+table.header.userName=Nome utente
diff --git a/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_it.properties
index b6ebfe87837eed48607901120a300a0aeeda5aa7..bd7773f694b56a1d8cf6f931490ea081326c0f18 100644
--- a/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_it.properties
@@ -1,4 +1,4 @@
-#Sat Jan 08 14:07:31 CET 2011
+#Thu Feb 09 09:17:28 CET 2017
 allow.dmz.requests.done=Tutte le request su DMZ vengono permesse a partire da questo momento
 allow.login.done=Il bloccaggio login \u00E8 stato sospeso.
 block.login.done=Ora tutti i nuovi login sono bloccati.
@@ -57,7 +57,7 @@ requestloglevel.disabled=Questa caratteristica non \u00E8 configuarata su questo
 requestloglevel.format.label=Formato
 requestloglevel.format.text=127.0.0.1\=DEBUG<br>192.168.0.1\=DEBUG,DebugLog (DebugLog \= log4j Appender)<br>administrator\=INFO
 requestloglevel.ips=Indirizzi IP
-requestloglevel.usernames=Nomi d'utente
+requestloglevel.usernames=Nomi utente
 resetloglevels=Ripristina tutti i livelli log su INFO
 run.gc=Run garbage collection
 sess.access=Ultimo accesso
diff --git a/src/main/java/org/olat/admin/user/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/admin/user/_i18n/LocalStrings_it.properties
index f58ed6163866ee444c7eda9d0b96392b247b1a1f..6304718bad31072537b62260be0d0c2e1e677c91 100644
--- a/src/main/java/org/olat/admin/user/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/admin/user/_i18n/LocalStrings_it.properties
@@ -1,12 +1,12 @@
-#Sat Jan 08 14:06:55 CET 2011
+#Thu Feb 09 09:17:34 CET 2017
 action.bulkedit=Modificare gli attributi di questi utenti
 action.choose=Selezionare
 action.choose.finish=Selezionare e concludere
 action.select=Selezionare
 authedit.delete.confirm=Vuole veramente sopprimere il provider d'autenticazione {0} per l'utente {1}?
 authedit.delete.success=Il provider d'autenticazione {0} per l'utente {1} \u00E8 stato soppresso.
-autocompletion.info=Indichi un nome d'utente OLAT, un nome o un cognome.
 autocomplete.noresults=$org.olat.core.gui.control.generic.ajax.autocompletion\:autocomplete.noresults
+autocompletion.info=Indichi un nome d'utente OLAT, un nome o un cognome.
 btn.back=Indietro
 bulkChange.failed=Non \u00E8 stata operata alcuna modifica
 bulkChange.partialsuccess={0} di {1} modifiche sono riuscite. Gli attributi degli utenti seguenti non sono stati modificati\: {2}
@@ -44,7 +44,6 @@ form.username=Nome utente
 found.property=Attributo selezionato {0}
 header.autocompletion=Ricerca con completamento automatico
 header.normal=Ricerca con attributi utente
-
 mailto.userlist=Lista degli utenti
 msg.selectionempty=Selezionare almeno un utente, p.f.
 new.error.email.choosen=Questo indirizzo e-mail \u00E8 gi\u00E0 in uso\: non pu\u00F2 creare un nuovo conto utente per questa persona. Nessun dato \u00E8 stato salvato.
@@ -61,7 +60,7 @@ new.form.password.new1=Password
 new.form.password.new2=Conferma la password
 new.form.please.enter=Indicazioni sulla persona relativa al nuovo conto utente
 new.form.please.enter.pwd=Stabilisca una password per l'utente. 
-new.form.username=Nome d'utente
+new.form.username=Nome utente
 new.user.cancel=L'azione \u00E8 stata interrotta. Nessun nuovo conto utente \u00E8 stato creato.
 new.user.successful=Il nuovo conto utente \u00E8 stato creato.
 notification.noNews=A partire da questa data non si \u00E8 connesso alcun nuovo utente.
diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_it.properties
index f46d2999d7595173b2df1e50e58845afddb02397..ba0577cb6b99bbeec8cb30754a47fd4bab5f8c54 100644
--- a/src/main/java/org/olat/core/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/core/_i18n/LocalStrings_it.properties
@@ -1,4 +1,4 @@
-#Mon Oct 10 11:49:19 CEST 2016
+#Thu Feb 09 09:22:05 CET 2017
 alert=Selezioni almeno un oggetto per l'azione desiderata, p.f.
 back=Indietro
 calendar.choose=Selezioni una data nel calendario mini
@@ -45,7 +45,7 @@ next=Avanti
 no=No
 off=spento
 ok=OK
-on=acceso
+on=attivo
 opfailed=Operazione fallita
 opsuccess=Operazione riuscita
 page.appname=OpenOLAT
diff --git a/src/main/java/org/olat/course/assessment/ui/mode/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/assessment/ui/mode/_i18n/LocalStrings_it.properties
index b4c5018596e62e26f86d2881771a86701519c073..bbce84152b4f5877146b5f6eaf97f4c653b2d092 100644
--- a/src/main/java/org/olat/course/assessment/ui/mode/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/course/assessment/ui/mode/_i18n/LocalStrings_it.properties
@@ -1,6 +1,6 @@
-#Thu Jul 28 10:42:08 CEST 2016
+#Thu Feb 09 09:13:11 CET 2017
 add.mode=Creare una configurazione di esame
-admin.menu.title=Modo di valutazione
+admin.menu.title=Modalit\u00E0 di valutazione
 admin.menu.title.alt=$\:admin.menu.title
 areas=Aree di studio
 assessment.countdown=L'esame terminer\u00E0 tra {0} minuto/i
diff --git a/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_it.properties
index 6be78d4710e4799bf306e8940c60ab92daa78921..67df0c89ac7f97d0a4c909df570fae04f29f2c13 100644
--- a/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_it.properties
@@ -1,10 +1,10 @@
-#Wed Feb 01 13:40:33 CET 2017
+#Thu Feb 09 09:22:15 CET 2017
 editor.lock.message=L'elemento di corso \u00E8 bloccato perch\u00E9 viene attualmente elaborato.
 editor.lock.title=Elemento di corso bloccato
 freezenoaccess.message=Questo corso \u00E8 in modalit\u00E0 di sola lettura.
 freezenoaccess.title=Nessun accesso
 guestnoaccess.message=Questa parte del corso non \u00E8 accessibile agli ospiti. <p>Per accedervi, deve prima procedere all'autenticazione attraverso un'Universit\u00E0 o registrarsi presso OLAT.
-guestnoaccess.title=Acceso negato agli ospiti
+guestnoaccess.title=Accesso negato agli ospiti
 learningObjectives.title=Descrizione
 personal.title=Riepilogo performance
 preview.notavailable=Per questo elemento di corso non \u00E8 disponibile un'anteprima.
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_it.properties
index f09d4611b299370f719ddbb6cc64a11eee11eb42..f60a87ca1c40157e109a5f162629d17a8bae34eb 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_it.properties
@@ -1,4 +1,4 @@
-#Wed Feb 01 13:41:28 CET 2017
+#Fri Feb 10 08:57:07 CET 2017
 add.solution=Aggiungere soluzione
 add.task=Aggiungere compito
 assessment.group.tool=Valutare il gruppo
@@ -110,6 +110,7 @@ group.passed=Superato per il gruppo
 group.score=Punteggio di gruppo
 group.title=Riepilogo punteggio
 info.title=$org.olat.course.nodes.ms\:info.title
+lastmodified=il {0}
 log.title=Registro delle modifiche
 mail.confirm.assignment.body=L'assegnazione ha avuto successo
 mail.confirm.assignment.subject=Assegnazione
diff --git a/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_it.properties
index 6b8761741c4541452978ddc4aaf30c19dc93855e..8529d588e0c5571945063e2e08f3d5c532ad385b 100644
--- a/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_it.properties
@@ -1,4 +1,4 @@
-#Wed Jun 22 10:37:05 CEST 2016
+#Thu Feb 09 09:22:56 CET 2017
 action.general=Azione
 backLink=Indietro
 bgcopywizard.copyform.areas=Configurazione aree di studio
@@ -26,7 +26,7 @@ config.resources.noresources=Selezionare "Aggiungi corso" per collegare uno o pi
 config.resources.title=Corsi
 config.tools.desc=Strumenti di collaborazione
 config.tools.off=spento
-config.tools.on=acceso
+config.tools.on=attivo
 config.tools.title=Strumenti
 contact.cp.from=$org.olat.core.util.mail\:contact.cp.from
 continue=Avanti
diff --git a/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java b/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java
index 4da8b8738a2204769fe98a71ac1c8454ffde1815..97798f72f83996ea275cd321ba6bbda54bea8f1c 100644
--- a/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/QTI21AssessmentDetailsController.java
@@ -279,7 +279,7 @@ public class QTI21AssessmentDetailsController extends FormBasicController {
 				AssessmentTestSession row = tableModel.getObject(se.getIndex());
 				row = qtiService.getAssessmentTestSession(row.getKey());
 				if("open".equals(cmd)) {
-					if(row.getTerminationTime() == null) {
+					if(row.getFinishTime() == null) {
 						doConfirmPullSession(ureq, row);
 					} else {
 						doOpenResult(ureq, row);
@@ -363,8 +363,8 @@ public class QTI21AssessmentDetailsController extends FormBasicController {
 		FileResourceManager frm = FileResourceManager.getInstance();
 		File fUnzippedDirRoot = frm.unzipFileResource(session.getTestEntry().getOlatResource());
 		URI assessmentObjectUri = qtiService.createAssessmentObjectUri(fUnzippedDirRoot);
-		File submissionDir = qtiService.getAssessmentResultFile(session);
-		String mapperUri = registerCacheableMapper(null, "QTI21Resources::" + session.getTestEntry().getKey(),
+		File submissionDir = qtiService.getSubmissionDirectory(session);
+		String mapperUri = registerCacheableMapper(null, "QTI21DetailsResources::" + session.getKey(),
 				new ResourcesMapper(assessmentObjectUri, submissionDir));
 		
 		resultCtrl = new AssessmentResultController(ureq, getWindowControl(), assessedIdentity, false, session,
@@ -381,7 +381,13 @@ public class QTI21AssessmentDetailsController extends FormBasicController {
 		@Override
 		public int compare(AssessmentTestSession a1, AssessmentTestSession a2) {
 			Date t1 = a1.getTerminationTime();
+			if(t1 == null) {
+				t1 = a1.getFinishTime();
+			}
 			Date t2 = a2.getTerminationTime();
+			if(t2 == null) {
+				t2 = a2.getFinishTime();
+			}
 			
 			int c;
 			if(t1 == null && t2 == null) {
diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
index 2e31a1a8108e42ce0018ac565e0e52012b996e3f..14b11f906538baec24b67a60b37b4cc559614d99 100644
--- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
@@ -61,6 +61,8 @@ correct.solution=Korrekte L\u00F6sung
 correction=Korrigieren
 debug.outcomes=Output Daten
 debug.responses=Antworten Daten
+drawing.brushsize=Pinselgr\u00F6sse
+drawing.opacity=Deckkraft
 error.as.directed=Alle 4 Antwortm\u00F6glichkeiten m\u00FCssen entweder mit Richtig oder Falsch beantwortet werden.
 error.as.directed.kprim=Bitte beantworten Sie die Frage wie vorgegeben.
 error.assessment.item=Die Datei konnte nicht gelesen werden. Sie ist entweder korrupt oder mit dem falschen Format gespeichert.
diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
index 466e366779aa813024bb21eb88dde85db3f9081e..3701c18581f88cfef1337d97d692a78df30d782e 100644
--- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
@@ -61,6 +61,8 @@ correct.solution=Correct solution
 correction=Grade
 debug.outcomes=Output data
 debug.responses=Responses data
+drawing.brushsize=Brush size
+drawing.opacity=Opacity
 error.as.directed=Please complete this interaction as directed.
 error.as.directed.kprim=Please complete this interaction as directed.
 error.assessment.item=The file cannot be interpreted. It seems corrupted or with the wrong format.
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/IdentitiesAssessmentItemCorrectionController.java b/src/main/java/org/olat/ims/qti21/ui/assessment/IdentitiesAssessmentItemCorrectionController.java
index 34aadde934df6fb1f3ab0a3eb5f051fa623bdedd..286b622136b58145674ee688cd744427eee17599 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/IdentitiesAssessmentItemCorrectionController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/IdentitiesAssessmentItemCorrectionController.java
@@ -124,7 +124,7 @@ public class IdentitiesAssessmentItemCorrectionController extends FormBasicContr
 		interactions = assessmentItem.getItemBody().findInteractions();
 		
 		resourcesMapper = new ResourcesMapper(assessmentObjectUri, submissionDirectoryMaps);
-		mapperUri = registerCacheableMapper(null, "QTI21Resources::" + testEntry.getKey(), resourcesMapper);
+		mapperUri = registerCacheableMapper(null, "QTI21CorrectionsResources::" + testEntry.getKey(), resourcesMapper);
 
 		initForm(ureq);
 	}
@@ -228,34 +228,43 @@ public class IdentitiesAssessmentItemCorrectionController extends FormBasicContr
 		
 		if(itemResults != null) {
 			for(IdentityAssessmentItemWrapper itemResult:itemResults) {
-				String scoreVal = itemResult.getScoreEl().getValue();
-				itemResult.getScoreEl().clearError();
-				try {
-					double score = Double.parseDouble(scoreVal);
-					//check boundaries
-					
-					boolean boundariesOk = true;
-					if(itemResult.getMinScore() != null && score < itemResult.getMinScoreVal().doubleValue()) {
-						boundariesOk &= false;
-					}
-					if(itemResult.getMaxScore() != null && score > itemResult.getMaxScoreVal().doubleValue()) {
-						boundariesOk &= false;
-					}
-					
-					if(!boundariesOk) {
-						itemResult.getScoreEl()
-							.setErrorKey("correction.min.max.score", new String[]{ itemResult.getMinScore(), itemResult.getMaxScore() });
-					}
-					allOk &= boundariesOk;
-				} catch(Exception e) {
-					itemResult.getScoreEl().setErrorKey("form.error.nointeger", null);
-					allOk &= false;
-				}
+				allOk &= validateItemResults(itemResult);
 			}
 		}
 		
 		return allOk & super.validateFormLogic(ureq);
 	}
+	
+	private boolean validateItemResults(IdentityAssessmentItemWrapper itemResult) {
+		boolean allOk = true;
+		
+		String scoreVal = itemResult.getScoreEl().getValue();
+		itemResult.getScoreEl().clearError();
+		if(StringHelper.containsNonWhitespace(scoreVal)) {
+			try {
+				double score = Double.parseDouble(scoreVal);
+				//check boundaries
+				
+				boolean boundariesOk = true;
+				if(itemResult.getMinScore() != null && score < itemResult.getMinScoreVal().doubleValue()) {
+					boundariesOk &= false;
+				}
+				if(itemResult.getMaxScore() != null && score > itemResult.getMaxScoreVal().doubleValue()) {
+					boundariesOk &= false;
+				}
+				
+				if(!boundariesOk) {
+					itemResult.getScoreEl()
+						.setErrorKey("correction.min.max.score", new String[]{ itemResult.getMinScore(), itemResult.getMaxScore() });
+				}
+				allOk &= boundariesOk;
+			} catch(Exception e) {
+				itemResult.getScoreEl().setErrorKey("form.error.nointeger", null);
+				allOk &= false;
+			}
+		}
+		return allOk;
+	}
 
 	@Override
 	protected void formOK(UserRequest ureq) {
@@ -265,8 +274,10 @@ public class IdentitiesAssessmentItemCorrectionController extends FormBasicContr
 	@Override
 	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
 		if(nextQuestionButton == source) {
-			doSave();
-			fireEvent(ureq, Event.DONE_EVENT);
+			if(validateFormLogic(ureq)) {
+				doSave();
+				fireEvent(ureq, Event.DONE_EVENT);
+			}
 		}
 		super.formInnerEvent(ureq, source, event);
 	}
@@ -277,48 +288,46 @@ public class IdentitiesAssessmentItemCorrectionController extends FormBasicContr
 	}
 	
 	private void doSave() {
-		if(itemResults != null) {
-			
+		if(itemResults == null) return;
+		
+		for(IdentityAssessmentItemWrapper itemResult:itemResults) {
+			AssessmentItemCorrection itemCorrection = itemResult.getCorrection();
+			TestSessionState testSessionState = itemCorrection.getTestSessionState();
+			AssessmentTestSession candidateSession = itemCorrection.getTestSession();
+			AssessmentSessionAuditLogger candidateAuditLogger = qtiService.getAssessmentSessionAuditLogger(candidateSession, false);
 			
-			for(IdentityAssessmentItemWrapper itemResult:itemResults) {
-				AssessmentItemCorrection itemCorrection = itemResult.getCorrection();
-				TestSessionState testSessionState = itemCorrection.getTestSessionState();
-				AssessmentTestSession candidateSession = itemCorrection.getTestSession();
-				AssessmentSessionAuditLogger candidateAuditLogger = qtiService.getAssessmentSessionAuditLogger(candidateSession, false);
+			String scoreVal = itemResult.getScoreEl().getValue();
+			if(StringHelper.containsNonWhitespace(scoreVal)) {
+				BigDecimal mScore = new BigDecimal(scoreVal);
+				String stringuifiedIdentifier = itemResult
+						.getTestPlanNodeKey().getIdentifier().toString();
 				
-				String scoreVal = itemResult.getScoreEl().getValue();
-				if(StringHelper.containsNonWhitespace(scoreVal)) {
-					BigDecimal mScore = new BigDecimal(scoreVal);
-					String stringuifiedIdentifier = itemResult
-							.getTestPlanNodeKey().getIdentifier().toString();
-					
-					ParentPartItemRefs parentParts = AssessmentTestHelper
-							.getParentSection(itemResult.getTestPlanNodeKey(), testSessionState, resolvedAssessmentTest);
-					AssessmentItemSession itemSession = qtiService
-							.getOrCreateAssessmentItemSession(candidateSession, parentParts, stringuifiedIdentifier);
-					itemSession.setManualScore(mScore);
-					itemSession = qtiService.updateAssessmentItemSession(itemSession);
-					itemCorrection.setItemSession(itemSession);
-					
-					candidateAuditLogger.logCorrection(candidateSession, itemSession, getIdentity());
-				}
+				ParentPartItemRefs parentParts = AssessmentTestHelper
+						.getParentSection(itemResult.getTestPlanNodeKey(), testSessionState, resolvedAssessmentTest);
+				AssessmentItemSession itemSession = qtiService
+						.getOrCreateAssessmentItemSession(candidateSession, parentParts, stringuifiedIdentifier);
+				itemSession.setManualScore(mScore);
+				itemSession = qtiService.updateAssessmentItemSession(itemSession);
+				itemCorrection.setItemSession(itemSession);
 				
-				BigDecimal totalScore = null;
-				for(AssessmentItemCorrection corr:testCorrections.getCorrections(itemCorrection.getAssessedIdentity())) {
-					BigDecimal mScore = corr.getManualScore();
-					if(totalScore == null) {
-						totalScore = mScore;
-					} else if(mScore != null) {
-						totalScore = totalScore.add(mScore);
-					}
+				candidateAuditLogger.logCorrection(candidateSession, itemSession, getIdentity());
+			}
+			
+			BigDecimal totalScore = null;
+			for(AssessmentItemCorrection corr:testCorrections.getCorrections(itemCorrection.getAssessedIdentity())) {
+				BigDecimal mScore = corr.getManualScore();
+				if(totalScore == null) {
+					totalScore = mScore;
+				} else if(mScore != null) {
+					totalScore = totalScore.add(mScore);
 				}
-				
-				candidateSession.setManualScore(totalScore);
-				candidateSession = qtiService.updateAssessmentTestSession(candidateSession);
-				itemCorrection.setTestSession(candidateSession);
-				
-				IOUtils.closeQuietly(candidateAuditLogger);
-			}	
+			}
+			
+			candidateSession.setManualScore(totalScore);
+			candidateSession = qtiService.updateAssessmentTestSession(candidateSession);
+			itemCorrection.setTestSession(candidateSession);
+			
+			IOUtils.closeQuietly(candidateAuditLogger);
 		}
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/IdentityAssessmentTestCorrectionController.java b/src/main/java/org/olat/ims/qti21/ui/assessment/IdentityAssessmentTestCorrectionController.java
index a48549ac5b189b94be65ddf87cd9b90ebe0b3076..d4ec11af46685098bd5f68aaa45a48f69d6118d7 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/IdentityAssessmentTestCorrectionController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/IdentityAssessmentTestCorrectionController.java
@@ -112,9 +112,9 @@ public class IdentityAssessmentTestCorrectionController extends FormBasicControl
         		ImsQTI21Resource.createResolvingResourceLocator(fileResourceLocator);
 		assessmentObjectUri = qtiService.createAssessmentObjectUri(fUnzippedDirRoot);
 		
-		File submissionFile = qtiService.getSubmissionDirectory(candidateSession);
-		mapperUri = registerCacheableMapper(null, "QTI21Resources::" + testEntry.getKey(),
-				new ResourcesMapper(assessmentObjectUri, submissionFile));
+		File submissionDir = qtiService.getSubmissionDirectory(candidateSession);
+		mapperUri = registerCacheableMapper(null, "QTI21CorrectionResources::" + session.getKey(),
+				new ResourcesMapper(assessmentObjectUri, submissionDir));
 		
 		resolvedAssessmentTest = qtiService.loadAndResolveAssessmentTest(fUnzippedDirRoot, false, false);
 		testSessionState = qtiService.loadTestSessionState(candidateSession);
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_de.properties
index 6ab91a6108a626700bff1b4bb14a9ff36c82ed10..4c6b4f2523859456235113417b8c84a802851616 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_de.properties
@@ -6,7 +6,7 @@ correction.test.title=Korrigieren
 grade.no.items=Es gibt kein Resultat f\u00FCr diese Frage zu korrigieren.
 grade.nobody=Es gibt kein Resultat zu korrigieren.
 next.item=Zur n\u00E4chsten Frage
-not.responded=Die Frage wurde nicht beantworter
+not.responded=Die Frage wurde nicht beantwortet
 overview.tests=\u00DCbersicht und abschliessen
 previous.item=Zur\u00FCck zur letzte Frage
 save.next=Speichern und n\u00E4chste Frage
diff --git a/src/main/java/org/olat/ims/qti21/ui/components/_content/drawingInteraction.html b/src/main/java/org/olat/ims/qti21/ui/components/_content/drawingInteraction.html
index e54e00e355853b8cbc5a4da3f0b42bd35c4456bf..e2bc092f31843a45ae910c54981ecaabbcf2c1ea 100644
--- a/src/main/java/org/olat/ims/qti21/ui/components/_content/drawingInteraction.html
+++ b/src/main/java/org/olat/ims/qti21/ui/components/_content/drawingInteraction.html
@@ -39,10 +39,10 @@
 			<canvas id="brush_size" width="50" height="50"> </canvas>
 		</div>
 		<div class="btn-group">	
-			<input type="range" id="width_range" value="10">Brush Size
+			<input type="range" id="width_range" value="10">$r.translate("drawing.brushsize")
 		</div>
 		<div class="btn-group">
-			<input type="range" id="opacity_range" value="100">Opacity
+			<input type="range" id="opacity_range" value="100">$r.translate("drawing.opacity")
 		</div>
 	</div>
 	#end
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java
index ab7e0a62e7a49732ffebe7246b96dbd7dcc0659f..766f907070b6cb851b875bae07e823c8ff390eb4 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java
@@ -267,19 +267,19 @@ public class AssessmentItemEditorController extends BasicController {
 	}
 	
 	private AssessmentItemBuilder initFIBEditors(UserRequest ureq, QTI21QuestionType preferedType, AssessmentItem item) {
-		FIBAssessmentItemBuilder kprimItemBuilder = new FIBAssessmentItemBuilder(item, qtiService.qtiSerializer());
-		itemEditor = new FIBEditorController(ureq, getWindowControl(), preferedType, kprimItemBuilder,
+		FIBAssessmentItemBuilder fibItemBuilder = new FIBAssessmentItemBuilder(item, qtiService.qtiSerializer());
+		itemEditor = new FIBEditorController(ureq, getWindowControl(), preferedType, fibItemBuilder,
 				rootDirectory, rootContainer, itemFile, restrictedEdit);
 		listenTo(itemEditor);
-		scoreEditor = new FIBScoreController(ureq, getWindowControl(), kprimItemBuilder, itemRef, restrictedEdit);
+		scoreEditor = new FIBScoreController(ureq, getWindowControl(), fibItemBuilder, itemRef, restrictedEdit);
 		listenTo(scoreEditor);
-		feedbackEditor = new FeedbackEditorController(ureq, getWindowControl(), kprimItemBuilder, restrictedEdit);
+		feedbackEditor = new FeedbackEditorController(ureq, getWindowControl(), fibItemBuilder, restrictedEdit);
 		listenTo(feedbackEditor);
 		
 		tabbedPane.addTab(translate("form.fib"), itemEditor);
 		tabbedPane.addTab(translate("form.score"), scoreEditor);
 		tabbedPane.addTab(translate("form.feedback"), feedbackEditor);
-		return kprimItemBuilder;
+		return fibItemBuilder;
 	}
 	
 	private AssessmentItemBuilder initHotspotEditors(UserRequest ureq, AssessmentItem item) {
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBScoreController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBScoreController.java
index 96a4d2595be5185963719d2e4a490b6c9f3176d9..bf3280305dfc1a7618521125a9ac8513c2d7edf6 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBScoreController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBScoreController.java
@@ -20,10 +20,10 @@
 package org.olat.ims.qti21.ui.editor.interactions;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
@@ -67,7 +67,7 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 	private SingleSelection assessmentModeEl;
 
 	private FIBAssessmentItemBuilder itemBuilder;
-	private final List<TextEntryWrapper> wrappers = new ArrayList<>();
+	private final List<FIBEntryWrapper> wrappers = new ArrayList<>();
 	
 	private int counter = 0;
 	
@@ -128,14 +128,14 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 		if(itemBuilder == assessmentItemBuilder) {
 			List<AbstractEntry> entries = itemBuilder.getOrderedTextEntries();
 			for(AbstractEntry entry:entries) {
-				TextEntryWrapper wrapper = getTextEntryWrapper(entry);
+				FIBEntryWrapper wrapper = getTextEntryWrapper(entry);
 				if(wrapper == null) {
 					wrappers.add(createTextEntryWrapper(entry));
 				}
 			}
 			
 			//remove removed entry
-			for(Iterator<TextEntryWrapper> wrapperIt=wrappers.iterator(); wrapperIt.hasNext(); ) {
+			for(Iterator<FIBEntryWrapper> wrapperIt=wrappers.iterator(); wrapperIt.hasNext(); ) {
 				Identifier responseIdentifier = wrapperIt.next().getEntry().getResponseIdentifier();
 				if(itemBuilder.getTextEntry(responseIdentifier.toString()) == null) {
 					wrapperIt.remove();
@@ -143,11 +143,13 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 			}
 			
 			//reorder the wrappers
-			Map<AbstractEntry,TextEntryWrapper> wrapperMap = wrappers.stream()
-					.collect(Collectors.toMap(w -> w.getEntry(), w -> w));
-			List<TextEntryWrapper> reorderedWrappers = new ArrayList<>();
+			Map<AbstractEntry,FIBEntryWrapper> wrapperMap = new HashMap<>();
+			for(FIBEntryWrapper wrapper:wrappers) {
+				wrapperMap.put(wrapper.getEntry(), wrapper);
+			}
+			List<FIBEntryWrapper> reorderedWrappers = new ArrayList<>();
 			for(AbstractEntry entry:entries) {
-				TextEntryWrapper wrapper = wrapperMap.get(entry);
+				FIBEntryWrapper wrapper = wrapperMap.get(entry);
 				if(wrapper != null) {
 					reorderedWrappers.add(wrapper);
 					wrapperMap.remove(entry);
@@ -155,15 +157,19 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 			}
 			
 			if(wrapperMap.size() > 0) {//paranoid security
-				reorderedWrappers.addAll(wrapperMap.values());
+				for(FIBEntryWrapper wrapper:wrapperMap.values()) {
+					if(!reorderedWrappers.contains(wrapper)) {
+						reorderedWrappers.add(wrapper);
+					}
+				}
 			}
 			wrappers.clear();
 			wrappers.addAll(reorderedWrappers);
 		}
 	}
 	
-	private TextEntryWrapper getTextEntryWrapper(AbstractEntry entry) {
-		for(TextEntryWrapper wrapper:wrappers) {
+	private FIBEntryWrapper getTextEntryWrapper(AbstractEntry entry) {
+		for(FIBEntryWrapper wrapper:wrappers) {
 			if(wrapper.getEntry() == entry) {
 				return wrapper;
 			}
@@ -171,7 +177,7 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 		return null;
 	}
 	
-	private TextEntryWrapper createTextEntryWrapper(AbstractEntry entry) {
+	private FIBEntryWrapper createTextEntryWrapper(AbstractEntry entry) {
 		String points = "";
 		Double score = entry.getScore();
 		if(score != null) {
@@ -182,7 +188,7 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 		pointEl.setDisplaySize(5);
 		pointEl.setEnabled(!restrictedEdit);
 		scoreCont.add(pointElId, pointEl);
-		return new TextEntryWrapper(entry, pointEl);
+		return new FIBEntryWrapper(entry, pointEl);
 	}
 
 	@Override
@@ -191,7 +197,7 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 		allOk &= validateDouble(maxScoreEl);
 
 		if(assessmentModeEl.isOneSelected() && assessmentModeEl.isSelected(1)) {
-			for(TextEntryWrapper wrapper:wrappers) {
+			for(FIBEntryWrapper wrapper:wrappers) {
 				allOk &= validateDouble(wrapper.getPointsEl());
 			}
 		}
@@ -219,7 +225,7 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 		
 		if(assessmentModeEl.isOneSelected() && assessmentModeEl.isSelected(1)) {
 			itemBuilder.setScoreEvaluationMode(ScoreEvaluation.perAnswer);
-			for(TextEntryWrapper wrapper:wrappers) {
+			for(FIBEntryWrapper wrapper:wrappers) {
 				String pointsStr = wrapper.getPointsEl().getValue();
 				Double points = new Double(pointsStr);
 				wrapper.getEntry().setScore(points);
@@ -236,16 +242,19 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 		//
 	}
 	
-	public final class TextEntryWrapper {
+	public final class FIBEntryWrapper {
 		
-		private final String summary;
 		private final AbstractEntry entry;
 		private final TextElement pointsEl;
 		
-		public TextEntryWrapper(AbstractEntry entry, TextElement pointsEl) {
+		public FIBEntryWrapper(AbstractEntry entry, TextElement pointsEl) {
 			this.entry = entry;
 			this.pointsEl = pointsEl;
 			pointsEl.setUserObject(this);
+		}
+
+		public String getSummary() {
+			String summary;
 			if(entry instanceof TextEntry) {
 				summary = ((TextEntry)entry).getSolution();
 			} else if(entry instanceof NumericalEntry) {
@@ -254,9 +263,6 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 			} else {
 				summary = "???";
 			}
-		}
-		
-		public String getSummary() {
 			return summary;
 		}
 		
@@ -267,5 +273,22 @@ public class FIBScoreController extends AssessmentItemRefEditorController implem
 		public AbstractEntry getEntry() {
 			return entry;
 		}
+		
+		@Override
+		public int hashCode() {
+			return entry.hashCode();
+		}
+		
+		@Override
+		public boolean equals(Object obj) {
+			if(this == obj) {
+				return true;
+			}
+			if(obj instanceof FIBEntryWrapper) {
+				FIBEntryWrapper w = (FIBEntryWrapper)obj;
+				return entry == w.entry;
+			}
+			return false;
+		}
 	}
 }
diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_it.properties
index c73575dbce812643392a4639d283110ff85a89ad..22ef65abf6356071a1e1847c731212e30e02db7d 100644
--- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_it.properties
@@ -1,6 +1,6 @@
-#Wed Feb 01 11:34:22 CET 2017
+#Thu Feb 09 09:11:12 CET 2017
 coaching.enabled=Tutoraggio abilitato
-coaching.on=su
+coaching.on=attivo
 coaching.title=Tutoraggio
 contact.link=Contatto
 contact.title=Contatto
diff --git a/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java b/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java
index a328034b2de00def1f7ce98abb9c24d6eed82b2e..9256411d7047a8c8fa9107080e33d37148d6bcb7 100644
--- a/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java
+++ b/src/main/java/org/olat/modules/portfolio/manager/BinderDAO.java
@@ -128,6 +128,8 @@ public class BinderDAO {
 	}
 	
 	public Binder syncWithTemplate(BinderImpl template, BinderImpl binder, AtomicBoolean changes) {
+		binder.setImagePath(template.getImagePath());
+		
 		List<Section> templateSections = template.getSections();
 		Map<Assignment,Section> assignmentTemplateToSectionTemplatesMap = new HashMap<>();
 		for(Section templateSection:templateSections) {
diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderListController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderListController.java
index f17c8cdc04f3dce992228356648cbb8c37388152..6e6327a8d2448322c378a4aff39b352a51c611da 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/BinderListController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/BinderListController.java
@@ -397,7 +397,12 @@ public class BinderListController extends FormBasicController
 		if(binder.isChanged()) {
 			showInfo("warning.binder.synched");
 		}
-		return doOpenBinder(ureq, binder.getBinder());
+		BinderController binderCtrl = doOpenBinder(ureq, binder.getBinder());
+		if(row instanceof BinderRow) {
+			VFSLeaf image = portfolioService.getPosterImageLeaf(binder.getBinder());
+			((BinderRow)row).setBackgroundImage(image);
+		}
+		return binderCtrl;
 	}
 	
 	protected BinderController doOpenBinder(UserRequest ureq, Binder binder) {
diff --git a/src/main/java/org/olat/modules/portfolio/ui/model/BinderRow.java b/src/main/java/org/olat/modules/portfolio/ui/model/BinderRow.java
index 53ae616558e47dffcb8ddcbfdaf0020f711dbe65..a599bd96a68e4c959ae01763faea3271c20201b4 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/model/BinderRow.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/model/BinderRow.java
@@ -36,7 +36,7 @@ import org.olat.modules.portfolio.model.BinderStatistics;
 public class BinderRow implements BinderRef {
 	
 	private final BinderStatistics binderStats;
-	private final VFSLeaf image;
+	private VFSLeaf image;
 	private final FormLink openLink;
 	private final boolean newBinder;
 	
@@ -109,6 +109,10 @@ public class BinderRow implements BinderRef {
 		return image;
 	}
 	
+	public void setBackgroundImage(VFSLeaf image) {
+		this.image = image;
+	}
+	
 	public String getImageName() {
 		return image == null ? null : image.getName();
 	}
diff --git a/src/main/java/org/olat/modules/wiki/WikiToCPResource.java b/src/main/java/org/olat/modules/wiki/WikiToCPResource.java
index ce5293f67e13438648ce8ea7aab6eeda830f6f84..ee965d6e2d13ff5b7ac37c42fb0beec2079c4b87 100644
--- a/src/main/java/org/olat/modules/wiki/WikiToCPResource.java
+++ b/src/main/java/org/olat/modules/wiki/WikiToCPResource.java
@@ -96,7 +96,7 @@ public class WikiToCPResource implements MediaResource {
 		}
 		
 		Wiki wiki = WikiManager.getInstance().getOrLoadWiki(ores);
-		String label = "Wiki";
+		String label = "Wiki.zip";
 		String urlEncodedLabel = StringHelper.urlEncodeUTF8(label);
 		hres.setHeader("Content-Disposition","attachment; filename*=UTF-8''" + urlEncodedLabel);			
 		hres.setHeader("Content-Description", urlEncodedLabel);
diff --git a/src/main/java/org/olat/registration/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/registration/_i18n/LocalStrings_it.properties
index 5984299966ca7e75d03ab1d0356c580a988387c3..8baacbb91661b9bd051356bd5713feee4a96aa91 100644
--- a/src/main/java/org/olat/registration/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/registration/_i18n/LocalStrings_it.properties
@@ -1,4 +1,4 @@
-#Wed Jul 06 12:01:27 CEST 2016
+#Thu Feb 09 09:17:11 CET 2017
 admin.enableRegistration=Attivare l'auto-registrazione
 admin.enableRegistration.on=Attivo
 admin.enableRegistrationLink=Attivare l'autro-registrazione da siti web esterni
@@ -33,8 +33,8 @@ email.address.maynotbeempty=La casella dell'indirizzo e-mail non pu\u00F2 essere
 email.address.notregular=L'indirizzo e-mail dev'essere valido.
 email.address2=Indirizzo e-mail (immettere nuovamente, p.f.)
 email.notsent=La e-mail non pu\u00F2 essere spedita. Immetta nuovamente il Suo indirizzo e-mail, p.f.
-email.or.username=Indirizzo e-mail o nome d'utente
-email.or.username.maynotbeempty=Indichi il Suo indirizzo e-mail o il Suo nome d'utente, p.f.
+email.or.username=Indirizzo e-mail o nome utente
+email.or.username.maynotbeempty=Indichi il Suo indirizzo e-mail o il Suo nome utente
 email.or.username.not.identified=L'utente non \u00E8 identificabile chiaramente
 email.sent=La e-mail \u00E8 stata spedita.
 form.check1=Immetta il Suo nome, p.f.
@@ -69,7 +69,7 @@ pwform.failed=Errore inatteso\: la password non viene modificata.
 pwkey.missingentry=La chiave per impostare la Sua nuova password non \u00E8 stata trovata.
 reg.body=<p>Grazie per il Suo interessamento a OpenOLAT.</p><p>Presso {3}<br>pu\u00F2 completare la registrazione.</p><p>Nel caso non si voglia ancora registrare, cancelli senz'altro questa e-mail.</p><p>Il Suo team OpenOLAT</p>
 reg.error.disabled.body=L'auto-registrazione \u00E8 disattivata per questo sistema. Prego contattare l'amministratore di sistema {0} per ottenere l'accesso.
-reg.error.no_username=Il nome d'utente non \u00E8 stato creato.
+reg.error.no_username=Il nome utente non \u00E8 stato creato.
 reg.error.title=Registrazione interrotta
 reg.error.user_in_use=Il nome d'utente esiste gi\u00E0
 reg.notiEmail.body=Una/un nuova/o utente OpenOLAT si \u00E8 appena registrata/o\: \n\nNome\: \t{2}\nCognome\: \t\t{1}\nLogin\: \t\t{0}\nE-mail\: \t{3}\nLingua\: \t\t{4}\nServer\: \t\t{5}
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties
index baf89bcd4e2f3429558c2a75ab68035bdb22553e..6bb7c41f8b0771027c5783aa110f5a7e9987df05 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties
@@ -1,4 +1,4 @@
-#Tue Feb 07 10:45:56 CET 2017
+#Thu Feb 09 09:15:30 CET 2017
 BinderTemplate=Portfolio 2.0 modello
 CourseModule=Corso
 EPStructuredMapTemplate=Modello di portfolio
@@ -329,9 +329,9 @@ menu.repository.admin.alt=$\:menu.repository.admin
 message.entry.selected=La risorsa didattica {0} del tipo {1} \u00E8 stata collocata correttamente.
 month=Mese
 msg.warnusers=(Questa risorsa didattica \u00E8 attualmente utilizzata da {0} utente/i.)
-my.course.comment.enabled=Commenti in "Corso"
-my.course.rating.enabled=Valutazioni in "Corso"
-my.course.search.enabled=Ricerca nel "Corso"
+my.course.comment.enabled=Commenti in "Corsi"
+my.course.rating.enabled=Valutazioni in "Corsi"
+my.course.search.enabled=Ricerca in "Corsi"
 new.blog=Creare blog
 new.blog.intro=Creare un nuovo blog
 new.course=Creare corso
diff --git a/src/main/java/org/olat/shibboleth/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/shibboleth/_i18n/LocalStrings_it.properties
index ec3c8b8c9747c802809bfb7e793b151268e3c339..c6fceb1cdb1145632b8df82c0b66d40f3d84ec2a 100644
--- a/src/main/java/org/olat/shibboleth/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/shibboleth/_i18n/LocalStrings_it.properties
@@ -1,14 +1,4 @@
-#Thu Sep 03 11:24:42 CEST 2015
-
-
-
-
-
-
-
-
-
-
+#Thu Feb 09 09:18:21 CET 2017
 eduPersonAffiliation=Affiliazione
 eduPersonAffiliation.affiliate=Affiliati
 eduPersonAffiliation.alum=Alumni
@@ -29,8 +19,8 @@ info.browser.close=Per ragioni di sicurezza Le consigliamo di chiudere il Suo br
 mail=E-mail
 organizationalUnit=Unit\u00E0 organizzativa
 postalAddress=Indirizzo
-sm.error.no_username=Nessun nome d'utente \u00E8 stato cerato
-sm.error.username_in_use=Il nome d'utente esiste gi\u00E0
+sm.error.no_username=Nessun nome utente \u00E8 stato cerato
+sm.error.username_in_use=Il nome utente esiste gi\u00E0
 sm.header=Registrazione
 sm.intro=Il nome d'utente da lei scelto esiste gi\u00E0 il OLAT. Se \u00E8 sicura/o di avere utilizzato precedentemente questo nome d'utente durante la registrazione OLAT, allora immetta la password corrispondente. A verificazione avvenuta il nome d'utente verr\u00E0 rilevato automaticamente.<br><br>Se Lei non ha creato questo nome d'utente, allora clicchi su "Interrompere" e scelga un altro nome d'utente.
 smf.error.blocked=Il nome d'utente scelto \u00E8 stato bloccato per ragioni di sicurezza. Riprovi pi\u00F9 tardi, p.f.
diff --git a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_it.properties
index 23bce0cf12932cdeee37cff4c436e20d2e2ada74..dc7f67aeb352604d996356d8f42eb94817239e1e 100644
--- a/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/user/propertyhandlers/_i18n/LocalStrings_it.properties
@@ -1,4 +1,4 @@
-#Tue Feb 07 10:01:03 CET 2017
+#Thu Feb 09 09:16:42 CET 2017
 country.code.AD=Andorra
 country.code.AE=Emirati Arabi Uniti
 country.code.AG=Antigua/Barbuda
@@ -439,7 +439,7 @@ userinterests.configinfo=La configurazione degli interessi degli utenti a dispos
 userinterests.description=Selezionare tra le seguenti aree di interesse, quelle in cui si \u00E8 specializzati o interessati (massimo 5).
 userinterests.editlink=Modificare...
 userinterests.title=Expertise
-username=Nome d'utente
+username=Nome utente
 yph.err=Inserire un valore valido per favore
 yph.from=Da
 yph.infomsg=Inserire l'anno di inizio e di fine nel formato AAAA.<br />Puoi anche specificare il periodo da-a utilizzando '+ N' o '-N' ...