diff --git a/src/main/java/org/olat/core/commons/services/image/ImageHelperBean.java b/src/main/java/org/olat/core/commons/services/image/ImageHelperBean.java
index b162ac476f767ca634d6219bd55efa1ba845b011..a06ed45abd3128cac2a80094bebb565f0d8c8443 100644
--- a/src/main/java/org/olat/core/commons/services/image/ImageHelperBean.java
+++ b/src/main/java/org/olat/core/commons/services/image/ImageHelperBean.java
@@ -49,6 +49,11 @@ public class ImageHelperBean implements ImageService {
 		return imageHelperServiceProvider.getSize(image, suffix);
 	}
 
+	@Override
+	public Size getSize(File image, String suffix) {
+		return imageHelperServiceProvider.getSize(image, suffix);
+	}
+
 	@Override
 	public boolean cropImage(File image, File cropedImage, Crop cropSelection) {
 		return imageHelperServiceProvider.cropImage(image, cropedImage, cropSelection);
diff --git a/src/main/java/org/olat/core/commons/services/image/ImageHelperSPI.java b/src/main/java/org/olat/core/commons/services/image/ImageHelperSPI.java
index 720a302870a6c939d9c2b369059980e18b86ce72..05512aa927a318e5d6b6c920e5c4cb348d040a6e 100644
--- a/src/main/java/org/olat/core/commons/services/image/ImageHelperSPI.java
+++ b/src/main/java/org/olat/core/commons/services/image/ImageHelperSPI.java
@@ -43,6 +43,8 @@ public interface ImageHelperSPI {
 	
 	public Size getSize(VFSLeaf image, String suffix);
 	
+	public Size getSize(File image, String suffix);
+	
 	public boolean cropImage(File image, File cropedImage, Crop cropSelection);
 
 	public Size scaleImage(File image, String extension, File scaledImage, int maxWidth, int maxHeight, boolean fill);
diff --git a/src/main/java/org/olat/core/commons/services/image/ImageService.java b/src/main/java/org/olat/core/commons/services/image/ImageService.java
index 093bf67a9c5ee9fa09cd2b9eb905b022d194d676..c514f6daeff98d28d0bea07144420d0a52b1468b 100644
--- a/src/main/java/org/olat/core/commons/services/image/ImageService.java
+++ b/src/main/java/org/olat/core/commons/services/image/ImageService.java
@@ -39,6 +39,8 @@ public interface ImageService {
 
 	public Size getSize(VFSLeaf image, String suffix);
 	
+	public Size getSize(File image, String suffix);
+	
 	public boolean cropImage(File image, File cropedImage, Crop cropSelection);
 
 	public Size scaleImage(File image, String extension, File scaledImage, int maxWidth, int maxHeight, boolean fill);
diff --git a/src/main/java/org/olat/core/commons/services/image/spi/AbstractImageHelper.java b/src/main/java/org/olat/core/commons/services/image/spi/AbstractImageHelper.java
index 9ad081e0efef85d1a0bca2e27b476d4d6b5a41d1..9d5a05ff090b4ddc661f6d89a44d2416478464f2 100644
--- a/src/main/java/org/olat/core/commons/services/image/spi/AbstractImageHelper.java
+++ b/src/main/java/org/olat/core/commons/services/image/spi/AbstractImageHelper.java
@@ -20,6 +20,8 @@
 package org.olat.core.commons.services.image.spi;
 
 import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Iterator;
@@ -59,6 +61,17 @@ public abstract class AbstractImageHelper implements ImageHelperSPI {
 		return size;
 	}
 	
+	public Size getSize(File image, String suffix) {
+		Size size = null;
+		if(StringHelper.containsNonWhitespace(suffix)) {
+			size = getImageSize(image, suffix);
+		}
+		if(size == null) {
+			size = getImageSizeFallback(image);
+		}
+		return size;
+	}
+	
 	private Size getImageSizeFallback(VFSLeaf media) {
 		InputStream fileStream = null;
 		BufferedImage imageSrc = null;
@@ -117,5 +130,51 @@ public abstract class AbstractImageHelper implements ImageHelperSPI {
 		}
 		return result;
 	}
+	
+	private Size getImageSize(File media, String suffix) {
+		Size result = null;
+		Iterator<ImageReader> iter = ImageIO.getImageReadersBySuffix(suffix);
+		if (iter.hasNext()) {
+			ImageReader reader = iter.next();
+			try (InputStream mediaStream = new FileInputStream(media);
+				 ImageInputStream stream = new MemoryCacheImageInputStream(mediaStream)){
+				reader.setInput(stream);
+				int readerMinIndex = reader.getMinIndex();
+				int width = reader.getWidth(readerMinIndex);
+				int height = reader.getHeight(readerMinIndex);
+				result = new Size(width, height, 0, 0, false);
+
+			} catch (IOException e) {
+				log.error(e.getMessage());
+			} finally {
+				reader.dispose();
+			}
+		} else {
+			log.error("No reader found for given format: " + suffix);
+		}
+		return result;
+	}
+	
+	private Size getImageSizeFallback(File media) {
+		BufferedImage imageSrc = null;
+		try (InputStream fileStream = new FileInputStream(media)) {
+			imageSrc = ImageIO.read(fileStream);
+			if (imageSrc == null) {
+				// happens with faulty Java implementation, e.g. on MacOSX
+				return null;
+			}
+			double realWidth = imageSrc.getWidth();
+			double realHeight = imageSrc.getHeight();
+			return new Size((int)realWidth, (int)realHeight, 0, 0, false);
+		} catch (IOException e) {
+			// log error, don't do anything else
+			log.error("Problem while setting image size to fit for resource::" + media, e);
+			return null;
+		} finally {
+			if (imageSrc != null) {
+				imageSrc.flush();
+			}
+		}
+	}
 
 }
diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
index 053e0b5f9ce17555eedb988e5ebe902c64121b25..9ba756015aab865ac14b3867d79bb732bc887480 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Thu Jun 02 15:29:28 CEST 2016
+#Wed Jun 15 14:04:13 CEST 2016
 add.solution=Add solution
 add.task=Add task
 assessment.group.tool=Grade group
@@ -214,6 +214,7 @@ solution.list.description=Select "$\:add.solution" or "$\:create.solution" to ad
 solution.list.title=Upload sample solutions
 solution.title=Title
 submission=Submission
+submission.add.title=Add document
 submission.confirmation=The submission of $numberOfFiles file(s) ($filename) for $first $last ($email) at $date, $time has been confirmed.
 submission.email.confirmation=Send text additionally as email
 submission.enabled=Enable solution drop box for participants
@@ -243,6 +244,7 @@ task.assignment.error=Unexpected error\!
 task.assignment.type=$org.olat.course.nodes.ta\:form.task.type
 task.assignment.type.auto=$org.olat.course.nodes.ta\:form.task.type.auto
 task.assignment.type.manual=$org.olat.course.nodes.ta\:form.task.type.manual
+task.coach.allowed.upload=Coaches can upload tasks
 task.description=Description
 task.execution=Task execution
 task.execution.group=as a group
diff --git a/src/main/java/org/olat/modules/video/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/video/ui/_i18n/LocalStrings_de.properties
index 5ce262e041401dc8b06312133eba5e7db06a0b21..82af75162d63c987e7d74bbe104a0a5cfcd32f67 100644
--- a/src/main/java/org/olat/modules/video/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/video/ui/_i18n/LocalStrings_de.properties
@@ -1,4 +1,4 @@
-#Thu Apr 21 15:21:09 CEST 2016
+#Wed Jun 15 14:04:51 CEST 2016
 add.track=Untertitel hinzuf\u00FCgen
 admin.config.enable=Videoressource einschalten
 admin.config.title=Videokonfiguration
@@ -6,24 +6,23 @@ admin.config.transcoding=Transcoding aktivieren
 admin.config.videoNode=Video Kursbaustein aktivieren
 admin.menu.title=Video
 admin.menu.title.alt=Konfiguration der Video-Resource
-poster.select=Poster ausw\u00E4hlen
-poster.help=Bild vom Typ JPG. Das Bild sollte die identischen Masse wie das Original Video haben (Selbe H\u00F6he und Weite in Pixel).
+listing.viewing.counter={0} Aufrufe
 poster.error.filetype=F\u00FCr Poster Bild werden nur Bilder vom Typ JPG unterst\u00FCtzt.
+poster.help=Bild vom Typ JPG. Das Bild sollte die identischen Masse wie das Original Video haben (Selbe H\u00F6he und Weite in Pixel).
+poster.select=Poster ausw\u00E4hlen
+quality.master=Master video
+quality.resolution.1080=1080p Full-HD
+quality.resolution.2160=2160p 4K
+quality.resolution.240=240p
+quality.resolution.360=360p
+quality.resolution.480=480p
+quality.resolution.720=720p HD
 quality.table.header.dimension=Dimension
 quality.table.header.format=Format
-quality.table.header.size=Gr\u00F6sse
 quality.table.header.resolution=Aufl\u00F6sung
+quality.table.header.size=Gr\u00F6sse
 quality.table.header.view=ansehen
 quality.view=vorschau
-quality.master=Master video
-quality.resolution.2160=2160p 4K
-quality.resolution.1080=1080p Full-HD
-quality.resolution.720=720p HD
-quality.resolution.480=480p
-quality.resolution.360=360p
-quality.resolution.240=240p
-transcoding.waiting=In Warteschlange
-transcoding.processing=In Bearbeitung
 tab.video.metaDataConfig=Metadaten
 tab.video.posterConfig=Poster konfigurieren
 tab.video.qualityConfig=Videoqualit\u00E4ten
@@ -41,6 +40,8 @@ track.table.label=Untertitel
 track.upload=Hochladen
 track.upload.error.nofile=Bitte w\u00E4hlen Sie eine Datei aus.
 track.upload.error.nolang=Bitte w\u00E4hlen Sie eine Sprache aus dieser Liste aus
+transcoding.processing=In Bearbeitung
+transcoding.waiting=In Warteschlange
 video.config.creationDate=Erstellungs Datum
 video.config.description=Beschreibung
 video.config.fileSize=Gr\u00F6sse der Videodatei
@@ -51,10 +52,10 @@ video.config.poster.hint=Hier legen Sie fest welches Bild sowohl als Poster / St
 video.config.poster.replace=Poster ersetzen
 video.config.poster.upload=Poster hochladen
 video.config.ratio=Seitenverh\u00E4ltnis
+video.config.track.error.type=nur *.vtt and *.srt Dateien sind erlaubt
 video.config.track.table.file=Untertitel Datei
 video.config.tracks=Verf\u00FCgbare Untertiteldateien
 video.config.tracks.table.add=hinzuf\u00FCgen
 video.config.tracks.table.delete=l\u00F6schen
 video.config.tracks.table.lang=Sprache
 video.config.width=Breite
-listing.viewing.counter={0} Aufrufe
\ No newline at end of file