diff --git a/src/main/java/org/olat/core/util/image/spi/ImageHelperImpl.java b/src/main/java/org/olat/core/util/image/spi/ImageHelperImpl.java
index b38747605bf2b8bf4ed6eb9a7878d3d107a511bf..20faf07b3f98fcee7c6a60866929480db0c8a34b 100644
--- a/src/main/java/org/olat/core/util/image/spi/ImageHelperImpl.java
+++ b/src/main/java/org/olat/core/util/image/spi/ImageHelperImpl.java
@@ -377,29 +377,32 @@ public class ImageHelperImpl implements ImageHelperSPI {
 				ImageReadParam param = reader.getDefaultReadParam();
                 Iterator<ImageTypeSpecifier> imageTypes = reader.getImageTypes(0);
                 while (imageTypes.hasNext()) {
-                    ImageTypeSpecifier imageTypeSpecifier = imageTypes.next();
-                    int bufferedImageType = imageTypeSpecifier.getBufferedImageType();
-                    if (bufferedImageType == BufferedImage.TYPE_BYTE_GRAY) {
-                        param.setDestinationType(imageTypeSpecifier);
-                        break;
-                    }
-                }
-
-				double memoryKB = (width * height * 4) / 1024d;
-				if (memoryKB > 2000) {// check limit at 20MB
-					double free = Runtime.getRuntime().freeMemory() / 1024d;
-					if (free > memoryKB) {
-						all.setImage(reader.read(readerMinIndex, param));
-					} else {
-						// make sub sampling to save memory
-						int ratio = (int) Math.round(Math.sqrt(memoryKB / free));
-						param.setSourceSubsampling(ratio, ratio, 0, 0);
-						all.setImage(reader.read(readerMinIndex, param));
+                    try {
+						ImageTypeSpecifier imageTypeSpecifier = imageTypes.next();
+						int bufferedImageType = imageTypeSpecifier.getBufferedImageType();
+						if (bufferedImageType == BufferedImage.TYPE_BYTE_GRAY) {
+						    param.setDestinationType(imageTypeSpecifier);
+						}
+						
+						double memoryKB = (width * height * 4) / 1024d;
+						if (memoryKB > 2000) {// check limit at 20MB
+							double free = Runtime.getRuntime().freeMemory() / 1024d;
+							if (free > memoryKB) {
+								all.setImage(reader.read(readerMinIndex, param));
+							} else {
+								// make sub sampling to save memory
+								int ratio = (int) Math.round(Math.sqrt(memoryKB / free));
+								param.setSourceSubsampling(ratio, ratio, 0, 0);
+								all.setImage(reader.read(readerMinIndex, param));
+							}
+						} else {
+							all.setImage(reader.read(readerMinIndex, param));
+						}
+						return all;
+					} catch (IllegalArgumentException e) {
+						log.warn(e.getMessage(), e);
 					}
-				} else {
-					all.setImage(reader.read(readerMinIndex, param));
-				}
-				return all;
+                }
 			} catch (IOException e) {
 				log.error(e.getMessage(), e);
 			} finally {
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryEditDescriptionController.java b/src/main/java/org/olat/repository/controllers/RepositoryEditDescriptionController.java
index 7a9cfa1e2324ae59b209b12dce43319d0a31a6ba..2cff57b525444b32825c244399c43af98a626dfc 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryEditDescriptionController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryEditDescriptionController.java
@@ -324,7 +324,8 @@ public class RepositoryEditDescriptionController extends FormBasicController {
 		} else if (source == fileUpload) {
 			if (fileUpload.isUploadSuccess()) {
 				File uploadedFile = fileUpload.getUploadFile();
-				imageEl.setMediaResource(new NamedFileMediaResource(uploadedFile, fileUpload.getName(), "", false));
+				String filename = fileUpload.getUploadFileName();
+				imageEl.setMediaResource(new NamedFileMediaResource(uploadedFile, filename, "", false));
 				imageEl.setMaxWithAndHeightToFitWithin(400, 200);
 				imageEl.setVisible(true);
 				imageEl.getComponent().setDirty(true);