diff --git a/src/main/java/org/olat/core/gui/components/image/ImageComponent.java b/src/main/java/org/olat/core/gui/components/image/ImageComponent.java
index d0b669657fa4fc50e9a976cfa70a4a80f92764c5..3b7c33220e3d606bbdcef7d6402dcd9b704f0fd1 100644
--- a/src/main/java/org/olat/core/gui/components/image/ImageComponent.java
+++ b/src/main/java/org/olat/core/gui/components/image/ImageComponent.java
@@ -303,6 +303,8 @@ public class ImageComponent extends AbstractComponent implements Disposable {
 	}
 	
 	protected String getSuffix(String contentType) {
+		if(!StringHelper.containsNonWhitespace(contentType)) return null;
+		
 		contentType = contentType.toLowerCase();
 		if(contentType.indexOf("jpg") >= 0 || contentType.indexOf("jpeg") >= 0) {
 			return "jpg";
diff --git a/src/main/java/org/olat/modules/video/VideoModule.java b/src/main/java/org/olat/modules/video/VideoModule.java
index 0d9ab0c93699bb5f1f5939640e071105e74a7e8e..7e027f4b53f6cb3752b3e6434f00253b561ccad5 100644
--- a/src/main/java/org/olat/modules/video/VideoModule.java
+++ b/src/main/java/org/olat/modules/video/VideoModule.java
@@ -51,6 +51,8 @@ import org.springframework.stereotype.Service;
 public class VideoModule extends AbstractSpringModule {
 
 	private static final Logger log = Tracing.createLoggerFor(VideoModule.class);
+
+	public static final Integer DEFAULT_RESOLUTION = Integer.valueOf(720);
 	
 	private static final String VIDEO_ENABLED = "video.enabled";
 	private static final String VIDEOCOURSENODE_ENABLED = "video.coursenode.enabled";
@@ -81,8 +83,8 @@ public class VideoModule extends AbstractSpringModule {
 	@Value("${video.transcoding.profile}")
 	private String transcodingProfile;
 	
-	private int[] transcodingResolutionsArr; //= new int[] { 1080,720,480,360 };
-	private Integer preferredDefaultResolution;// = new Integer(720);
+	private int[] transcodingResolutionsArr; //  1080, 720, 480, 360
+	private Integer preferredDefaultResolution;// 720
 
 	@Autowired
 	private VideoHandler videoHandler;
@@ -149,14 +151,14 @@ public class VideoModule extends AbstractSpringModule {
 		setVideoTranscodingProfile(this.transcodingProfile);
 		
 
-		log.info("video.enabled=" + isEnabled());
-		log.info("video.coursenode.enabled=" + isCoursenodeEnabled());
-		log.info("video.transcoding.enabled=" + isTranscodingEnabled());
-		log.info("video.transcoding.resolutions=" + Arrays.toString(getTranscodingResolutions()));
-		log.info("video.transcoding.resolution.preferred=" + getPreferredDefaultResolution());
-		log.info("video.transcoding.taskset.cpuconfig=" + getTranscodingTasksetConfig());
-		log.info("video.transcoding.local=" + isTranscodingLocal());
-		log.info("video.transcoding.profile=" + getVideoTranscodingProfile());
+		log.info("video.enabled={}", isEnabled());
+		log.info("video.coursenode.enabled={}", isCoursenodeEnabled());
+		log.info("video.transcoding.enabled={}", isTranscodingEnabled());
+		log.info("video.transcoding.resolutions={}", Arrays.toString(getTranscodingResolutions()));
+		log.info("video.transcoding.resolution.preferred={}", getPreferredDefaultResolution());
+		log.info("video.transcoding.taskset.cpuconfig={}", getTranscodingTasksetConfig());
+		log.info("video.transcoding.local={}", isTranscodingLocal());
+		log.info("video.transcoding.profile={}", getVideoTranscodingProfile());
 
 		// Register video site for activation in top navigation
 		NewControllerFactory.getInstance().addContextEntryControllerCreator(VideoSite.class.getSimpleName(),
@@ -233,7 +235,7 @@ public class VideoModule extends AbstractSpringModule {
 			}
 		} 
 		if (transcodingEnabled) {
-			log.error("Error, no valid transcoding dir. Disabling transcoding. video.transcoding.dir=" + transcodingDir);
+			log.error("Error, no valid transcoding dir. Disabling transcoding. video.transcoding.dir={}", transcodingDir);
 			// only disable variable, don't store it in persisted properties
 			transcodingEnabled = false;
 		}
@@ -306,7 +308,7 @@ public class VideoModule extends AbstractSpringModule {
 				return;
 			}
 		}
-		this.transcodingProfile = "Fast"; // default;
+		this.transcodingProfile = "Fast"; // default
 	}
 	
 	public String getVideoTranscodingProfile() {
diff --git a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
index b5436a716e3110d822f7911e69f07405b16a17da..c92fc5cf7720e3517eaac46f941dfda2e0ca4220 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java
@@ -177,10 +177,7 @@ public class VideoDisplayController extends BasicController {
 			// Load users preferred version from GUI prefs
 			UserSession usess = ureq.getUserSession();
 			Preferences guiPrefs = usess.getGuiPreferences();
-			userPreferredResolution = (Integer) guiPrefs.get(VideoDisplayController.class, GUIPREF_KEY_PREFERRED_RESOLUTION);
-			if (userPreferredResolution == null) {
-				userPreferredResolution = videoModule.getPreferredDefaultResolution();
-			}
+			setUserPreferredResolution((Integer)guiPrefs.get(VideoDisplayController.class, GUIPREF_KEY_PREFERRED_RESOLUTION));
 
 			mainVC.contextPut("autoplay", displayOptions.isAutoplay());
 	
@@ -246,6 +243,20 @@ public class VideoDisplayController extends BasicController {
 		mainVC.contextPut("listenTimeUpdate", enable);
 	}
 	
+	public Integer getUserPreferredResolution() {
+		if (userPreferredResolution == null) {
+			userPreferredResolution = videoModule.getPreferredDefaultResolution();
+		}
+		if (userPreferredResolution == null)  {
+			userPreferredResolution = VideoModule.DEFAULT_RESOLUTION;
+		}
+		return userPreferredResolution;
+	}
+	
+	public void setUserPreferredResolution(Integer resolution) {
+		userPreferredResolution = resolution;
+	}	
+	
 	private void initMediaElementJs() {
 		// load mediaelementjs player, speed and sourcechooser plugins
 		List<String> cssPath = new ArrayList<>();
@@ -355,7 +366,7 @@ public class VideoDisplayController extends BasicController {
 					// Check if at least one has equal height, else use master as resource
 					addMaster &= videoTranscoding.getHeight() < masterResolution.getHeight();
 					// Use the users preferred resolution or the next higher resolution
-					if (videoTranscoding.getResolution() >= userPreferredResolution.intValue()) {
+					if (videoTranscoding.getResolution() >= getUserPreferredResolution().intValue()) {
 						preferredAvailableResolution = readyToPlayVideos.size() - 1;
 					}
 					// Calculate title. Standard title for standard resolution, original title if not standard resolution
@@ -699,6 +710,7 @@ public class VideoDisplayController extends BasicController {
 			}
 		}
 	}
+
 	
 	public static class VideoMarkerWrapper {
 		
diff --git a/src/main/java/org/olat/modules/video/ui/question/QuestionConfigurationController.java b/src/main/java/org/olat/modules/video/ui/question/QuestionConfigurationController.java
index ed515c77be4bf00f4114682fc779f8639a5a4d25..519f8ed7c2744f6ed47fcf5e0a71052fb9a29def 100644
--- a/src/main/java/org/olat/modules/video/ui/question/QuestionConfigurationController.java
+++ b/src/main/java/org/olat/modules/video/ui/question/QuestionConfigurationController.java
@@ -95,7 +95,7 @@ public class QuestionConfigurationController extends FormBasicController {
 		beginEl.setExampleKey("time.format", null);
 		beginEl.setMandatory(true);
 		
-		String timeLimit = question.getTimeLimit() >= 0 ? Long.toString(question.getTimeLimit()) : "";
+		String timeLimit = question.getTimeLimit() > 0 ? Long.toString(question.getTimeLimit()) : "";
 		timeLimitEl = uifactory.addTextElement("timeLimit", "video.question.timeLimit", 10, timeLimit, formLayout);
 		
 		String[] onValues = new String[] { translate("video.question.allow.skipping"), translate("video.question.allow.retry") };
@@ -195,7 +195,12 @@ public class QuestionConfigurationController extends FormBasicController {
 		try {
 			String beginTime = beginEl.getValue();
 			question.setBegin(displayDateFormat.parse(beginTime));
-			question.setTimeLimit(Long.parseLong(timeLimitEl.getValue()));
+			if(StringHelper.containsNonWhitespace(timeLimitEl.getValue())
+					&& StringHelper.isLong(timeLimitEl.getValue())) {
+				question.setTimeLimit(Long.parseLong(timeLimitEl.getValue()));
+			} else {
+				question.setTimeLimit(-1l);
+			}
 			question.setStyle(styleEl.getSelectedKey());
 			question.setAllowSkipping(skippingEl.isSelected(0));
 			question.setAllowNewAttempt(skippingEl.isSelected(1));