diff --git a/src/main/java/org/olat/core/util/vfs/version/VersionsFileManager.java b/src/main/java/org/olat/core/util/vfs/version/VersionsFileManager.java
index 303733f3761a8a584f253d7de74aed7f8466239a..f8bb56bc0303b5cda5f80d358cdd3027ea0b9378 100644
--- a/src/main/java/org/olat/core/util/vfs/version/VersionsFileManager.java
+++ b/src/main/java/org/olat/core/util/vfs/version/VersionsFileManager.java
@@ -214,7 +214,15 @@ public class VersionsFileManager extends VersionsManager implements Initializabl
 			return versions;
 		} catch (Exception e) {
 			log.warn("This file is not a versions XML file: " + fVersions, e);
-			return null;
+			fVersions.delete();
+			VersionsFileImpl versions = new VersionsFileImpl();
+			versions.setCurrentVersion((Versionable) leaf);
+			versions.setVersioned(isVersioned(leaf));
+			versions.setRevisionNr(getNextRevisionNr(versions));
+			log.warn("Deleted corrupt version XML file and created new version XML file: " + versions);
+			// the old revisions can not be restored automatically. They are still on disk, you could recover them
+			// manually. This is not a perfect solution, but at least the user does not get an RS
+			return versions;
 		}
 	}