Index: java/installer2/src/net/oni2/aeinstaller/backend/oni/XMLTools.java
===================================================================
--- java/installer2/src/net/oni2/aeinstaller/backend/oni/XMLTools.java	(revision 924)
+++ java/installer2/src/net/oni2/aeinstaller/backend/oni/XMLTools.java	(revision 925)
@@ -19,20 +19,14 @@
 
 	/**
-	 * Patch the XML files in the path with the patches in the other path
+	 * Patch XML files with the given patch list
 	 * 
-	 * @param folderWithPatches
-	 *            Path containing patches to apply
-	 * @param folderWithXml
-	 *            Path containing XML files to patch
+	 * @param patch
+	 *            Patchlist file
 	 * 
 	 * @return XMLTools output
 	 */
-	public static ApplicationInvocationResult patch(File folderWithPatches,
-			File folderWithXml) {
+	public static ApplicationInvocationResult patch(File patch) {
 		Vector<String> params = new Vector<String>();
-		// xmlTools.exe --patch-files PATCH --force-target-files TOPATCH
-		params.add("--patch-files "
-				+ new File(folderWithPatches, "*.oni-patch").getPath());
-		params.add("--use-patch-filename " + folderWithXml.getPath());
+		params.add("--aei-patch-files-list \"" + patch.getPath() + "\"");
 		ApplicationInvocationResult res = null;
 		try {
Index: java/installer2/src/net/oni2/aeinstaller/backend/oni/management/Installer.java
===================================================================
--- java/installer2/src/net/oni2/aeinstaller/backend/oni/management/Installer.java	(revision 924)
+++ java/installer2/src/net/oni2/aeinstaller/backend/oni/management/Installer.java	(revision 925)
@@ -7,4 +7,5 @@
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -479,15 +480,27 @@
 			log.logAppOutput(res, true);
 
-			// Apply patches in levelFolderXML
-			File lastFolder = null;
-			for (File f : patches.get(level)) {
-				File pathOfPatch = f.getParentFile();
-				if (!pathOfPatch.equals(lastFolder)) {
-					lastFolder = pathOfPatch;
-
-					res = XMLTools.patch(pathOfPatch, levelFolderXML);
-					log.logAppOutput(res, false);
-				}
-			}
+			// Create masterpatch file (containing calls to all individual
+			// patches)
+			File masterpatch = new File(levelFolderXML, "masterpatch.txt");
+			PrintWriter masterpatchWriter = null;
+			try {
+				masterpatchWriter = new PrintWriter(masterpatch);
+			} catch (FileNotFoundException e) {
+				e.printStackTrace();
+			}
+			for (File patch : patches.get(level)) {
+				String patternWildcard = patch.getName();
+				patternWildcard = patternWildcard.substring(0,
+						patternWildcard.indexOf(".oni-patch"));
+				patternWildcard = patternWildcard + ".xml";
+				patternWildcard = patternWildcard.replace('-', '*');
+				File xmlFilePath = new File(levelFolderXML, patternWildcard);
+				masterpatchWriter.println(String.format("\"%s\" \"%s\"",
+						patch.getPath(), xmlFilePath.getPath()));
+			}
+			masterpatchWriter.close();
+			// Apply patches through masterpatch in levelFolderXML
+			res = XMLTools.patch(masterpatch);
+			log.logAppOutput(res, false);
 
 			// Create .oni files from XML
