diff --git a/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java b/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java
index 340b428eb39e5fad6706ea9ce9ced58cdc65f10c..2ad23cc5e71579598315bdd7421908a711877b4d 100644
--- a/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java
+++ b/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java
@@ -50,6 +50,7 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController;
 import org.olat.core.id.Identity;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.prefs.Preferences;
 import org.olat.course.assessment.AssessmentManager;
 import org.olat.course.highscore.manager.HighScoreManager;
@@ -185,6 +186,9 @@ public class HighScoreRunController extends FormBasicController{
 		
 		allScores = highscoreDataModel.getScores();
 
+		boolean failed = (ownEntry != null && ownEntry.getPassed() != null && !ownEntry.getPassed().booleanValue());
+		flc.contextPut("failed", Boolean.valueOf(failed));
+
 		// init showConfig from user Prefs
 		doLoadShowConfig(ureq);
 		
@@ -197,7 +201,7 @@ public class HighScoreRunController extends FormBasicController{
 	 */
 	private void doLoadShowConfig(UserRequest ureq) {
 		// add as listener to form layout for later dispatchinf of gui prefs changes
-		this.flc.getFormItemComponent().addListener(this);
+		flc.getFormItemComponent().addListener(this);
 		// init showConfig from user prefs
 		Boolean showConfig = Boolean.TRUE;
 		if (ureq != null) {
@@ -208,7 +212,7 @@ public class HighScoreRunController extends FormBasicController{
 			}
 		}
 		// expose initial value to velocity
-		this.flc.contextPut("showConfig", Boolean.valueOf(showConfig));
+		flc.contextPut("showConfig", showConfig);
 	}
 	
 	private void doUpdateShowConfig(UserRequest ureq, boolean newValue) {
@@ -223,7 +227,7 @@ public class HighScoreRunController extends FormBasicController{
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		
-		VelocityContainer mainVC = this.flc.getFormItemComponent();
+		VelocityContainer mainVC = flc.getFormItemComponent();
 		mainVC.put("loadd3js", new StatisticsComponent("d3loader"));
 		
 		if (viewHistogram) {
@@ -234,7 +238,7 @@ public class HighScoreRunController extends FormBasicController{
 			scoreHistogramVC.contextPut("datas", BarSeries.datasToString(allScores));
 			//histogram marker for own position
 			scoreHistogramVC.contextPut("cutValue",
-					ownIdIndices.size() > 0 ? highScoreManager.calculateHistogramCutvalue(
+					!ownIdIndices.isEmpty() ? highScoreManager.calculateHistogramCutvalue(
 							allMembers.get(ownIdIndices.get(0)).getScore(), modifiedData.getClasswidth(),
 							modifiedData.getMin()) : -1000);
 			//classwidth to correctly display the histogram
@@ -256,12 +260,12 @@ public class HighScoreRunController extends FormBasicController{
 					&& allPodium.get(1).size() <= maxPerson && allPodium.get(2).size() <= maxPerson;
 			for (int i = 0; i < localizer.length; i++) {
 				int sizePerPos = allPodium.get(i).size();
-				StringBuilder sb = new StringBuilder();
+				StringBuilder sb = new StringBuilder(64);
 				if (sizePerPos > 2){
 					int reduce = 0;
 					//create link if podium has more than 2 entries per rank, entries can be displayed as anonymous
 					if (allPodium.get(i).get(0).getIdentity().equals(ownIdentity)) {
-						sb.append(userManager.getUserDisplayName(ownIdentity));
+						sb.append(StringHelper.escapeHtml(userManager.getUserDisplayName(ownIdentity)));
 						++reduce;
 					}
 
@@ -277,8 +281,8 @@ public class HighScoreRunController extends FormBasicController{
 				} else {
 					for (HighScoreTableEntry te : allPodium.get(i)) {
 						if (!anonymous || te.getIdentity().equals(ownIdentity)) {
-							sb.append(userManager.getUserDisplayName(te.getIdentity()));
-							sb.append("<br/>");
+							sb.append(StringHelper.escapeHtml(userManager.getUserDisplayName(te.getIdentity())));
+							sb.append("<br>");
 						}						
 					}							
 				}
diff --git a/src/main/java/org/olat/course/highscore/ui/_content/highscore.html b/src/main/java/org/olat/course/highscore/ui/_content/highscore.html
index 699fc37dd9cf7a90b7aa411b0aa5a8d01bc87f6a..3ceacc2f2c8558b6959e1188907e45186206f275 100644
--- a/src/main/java/org/olat/course/highscore/ui/_content/highscore.html
+++ b/src/main/java/org/olat/course/highscore/ui/_content/highscore.html
@@ -9,9 +9,11 @@
 		<div class="panel-body">
 			<div class="container-fluid o_highscore o_block_large_bottom">
 			<div class="row clearfix">
-			#if ($position) 
+			#if ($position)
 				<div class="o_position o_block_bottom">
-					<h2>$r.translate("highscore.position.congratulation")</h2>
+					#if($r.isFalse($failed))
+						<h2>$r.translate("highscore.position.congratulation")</h2>
+					#end
 					$position
 					#if($relposition)					
 					<span class="o_position_relative">
@@ -38,7 +40,7 @@
 							<div class="o_score">$score1 $r.translate("graph.axis.points")</div>
 						#end
 						<div class="o_name">
-						#if ($first != "")$first<br />#end
+						#if ($first != "")$first<br>#end
 						#if ($r.available("link1")) 
 							$r.render("link1") 
 						#elseif ($further1)
@@ -63,7 +65,7 @@
 							<div class="o_score">$score2 $r.translate("graph.axis.points")</div>
 						#end
 						<div class="o_name">
-						#if ($second != "")$second<br /> #end
+						#if ($second != "")$second<br>#end
 						#if ($r.available("link2")) 
 							$r.render("link2") 
 						#elseif ($further2)
@@ -88,7 +90,7 @@
 							<div class="o_score">$score3 $r.translate("graph.axis.points")</div>
 						#end
 						<div class="o_name">
-						#if ($third != "")$third<br />#end
+						#if ($third != "")$third<br>#end
 						#if ($r.available("link3")) 
 							$r.render("link3")	
 						#elseif ($further3)
@@ -118,12 +120,12 @@
 		</div>
 	</div>
 </div>
-<script>/* <![CDATA[ */
-		jQuery('#o_collapseHighscore').on('hide.bs.collapse', function () {
-			jQuery('#o_collapseHighscoreToggler').removeClass('o_icon_close_togglebox').addClass('o_icon_open_togglebox');
-	  		$r.backgroundCommand("hide")
-		}).on('show.bs.collapse', function () {
-			jQuery('#o_collapseHighscoreToggler').removeClass('o_icon_open_togglebox').addClass('o_icon_close_togglebox');
-			$r.backgroundCommand("show")
-		})
-	/* ]]> */</script>
\ No newline at end of file
+<script>
+jQuery('#o_collapseHighscore').on('hide.bs.collapse', function () {
+	jQuery('#o_collapseHighscoreToggler').removeClass('o_icon_close_togglebox').addClass('o_icon_open_togglebox');
+ 		$r.backgroundCommand("hide")
+}).on('show.bs.collapse', function () {
+	jQuery('#o_collapseHighscoreToggler').removeClass('o_icon_open_togglebox').addClass('o_icon_close_togglebox');
+	$r.backgroundCommand("show")
+})
+</script>
\ No newline at end of file