diff --git a/PlayWall/src/main/java/de/tobias/playpad/update/VersionUpdater.java b/PlayWall/src/main/java/de/tobias/playpad/update/VersionUpdater.java
index b5f7c5be9793d58da416f0c68334c94194d36afe..96fc17c2f4c66c96fd4b8e5d9d4a26a0d80ff86d 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/update/VersionUpdater.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/update/VersionUpdater.java
@@ -1,13 +1,106 @@
 package de.tobias.playpad.update;
 
+import de.thecodelabs.logger.Logger;
 import de.thecodelabs.utils.application.App;
+import de.thecodelabs.utils.application.container.PathType;
 import de.thecodelabs.utils.application.update.UpdateService;
+import org.dom4j.Attribute;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.OutputFormat;
+import org.dom4j.io.SAXReader;
+import org.dom4j.io.XMLWriter;
 
-public class VersionUpdater implements UpdateService {
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.text.MessageFormat;
+import java.util.UUID;
 
+public class VersionUpdater implements UpdateService
+{
 	@Override
-	public void update(App app, long oldVersion, long newVersion) {
+	public void update(App app, long oldVersion, long newVersion)
+	{
+		try
+		{
+			if(oldVersion < 44)
+			{
+				updateTo44(app);
+			}
+		}
+		catch(Exception e)
+		{
+			e.printStackTrace();
+		}
+	}
+
+	private void updateTo44(App app) throws DocumentException, IOException
+	{
+		Logger.debug("Updating to app version 44...");
+
+		SAXReader reader = new SAXReader();
+
+		Document projectsDocument = reader.read(Files.newInputStream(app.getPath(PathType.CONFIGURATION, "Projects.xml")));
+		for(Element element : projectsDocument.getRootElement().elements("Project"))
+		{
+			final String projectName = element.attributeValue("name");
+			final UUID projectUUID = UUID.fromString(element.attributeValue("uuid"));
 
+			Logger.debug(MessageFormat.format("Updating project \"{0}\" (id: {1})...", projectName, projectUUID));
+			Path projectPath = app.getPath(PathType.DOCUMENTS, projectUUID.toString() + ".xml");
+			final Document migratedProject = updateProject(Files.newInputStream(projectPath));
+
+			XMLWriter writer = new XMLWriter(Files.newOutputStream(projectPath), OutputFormat.createPrettyPrint());
+			writer.write(migratedProject);
+			writer.close();
+		}
 	}
 
+	public static Document updateProject(InputStream projectInputStream) throws DocumentException
+	{
+		SAXReader reader = new SAXReader();
+
+		Document projectDocument = reader.read(projectInputStream);
+		Element rootProjectElement = projectDocument.getRootElement();
+
+		for(Element page : rootProjectElement.elements())
+		{
+			for(Element pad : page.elements())
+			{
+				final Element settings = pad.element("Settings");
+				if(settings == null)
+				{
+					continue;
+				}
+
+				final Element designElement = settings.element("Design");
+				if(designElement == null)
+				{
+					continue;
+				}
+
+				final Attribute customFlag = designElement.attribute("custom");
+				if(customFlag == null)
+				{
+					continue;
+				}
+
+				designElement.remove(customFlag);
+
+				if(customFlag.getValue().equals("false"))
+				{
+					continue;
+				}
+
+				designElement.addElement("EnableCustomBackgroundColor").addText("true");
+				designElement.addElement("EnableCustomPlayColor").addText("true");
+				designElement.addElement("EnableCustomCueInColor").addText("true");
+			}
+		}
+
+		return projectDocument;
+	}
 }
diff --git a/PlayWall/src/test/java/de/tobias/playpad/update/VersionUpdaterTest.java b/PlayWall/src/test/java/de/tobias/playpad/update/VersionUpdaterTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..15339be0643a1dc3aa66ae68d6a7735129be8e0a
--- /dev/null
+++ b/PlayWall/src/test/java/de/tobias/playpad/update/VersionUpdaterTest.java
@@ -0,0 +1,45 @@
+package de.tobias.playpad.update;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.junit.Test;
+
+import java.io.InputStream;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class VersionUpdaterTest
+{
+	@Test
+	public void testMigrateProject_UpdatePadDesignSettings() throws DocumentException
+	{
+		final InputStream projectInputStream = VersionUpdaterTest.class.getClassLoader().getResourceAsStream("de/tobias/playpad/update/ProjectToMigrateToVersion44.xml");
+		final Document migratedProject = VersionUpdater.updateProject(projectInputStream);
+
+		final Element rootElement = migratedProject.getRootElement();
+		final Element pageElement = rootElement.elements().get(0);
+
+		// pad with custom design enabled
+		final Element padElement = pageElement.elements().get(0);
+		final Element designElement = padElement.element("Settings").element("Design");
+
+		assertThat(designElement.attribute("custom")).isNull();
+
+		assertThat(designElement.element("EnableCustomBackgroundColor").getStringValue()).isEqualTo("true");
+		assertThat(designElement.element("BackgroundColor").getStringValue()).isEqualTo("RED2");
+
+		assertThat(designElement.element("EnableCustomPlayColor").getStringValue()).isEqualTo("true");
+		assertThat(designElement.element("PlayColor").getStringValue()).isEqualTo("YELLOW2");
+
+		assertThat(designElement.element("EnableCustomCueInColor").getStringValue()).isEqualTo("true");
+		assertThat(designElement.element("CueInColor").getStringValue()).isEqualTo("LIGHT_GREEN2");
+
+
+		// pad without custom design
+		final Element padElement2 = pageElement.elements().get(1);
+		final Element designElement2 = padElement2.element("Settings").element("Design");
+
+		assertThat(designElement2.attribute("custom")).isNull();
+	}
+}
diff --git a/PlayWall/src/test/resources/de/tobias/playpad/update/ProjectToMigrateToVersion44.xml b/PlayWall/src/test/resources/de/tobias/playpad/update/ProjectToMigrateToVersion44.xml
new file mode 100644
index 0000000000000000000000000000000000000000..86a23a31d6079ae067eb9329594ba46cc50d65d9
--- /dev/null
+++ b/PlayWall/src/test/resources/de/tobias/playpad/update/ProjectToMigrateToVersion44.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Project>
+    <Page uuid="a40033c7-4a85-49c9-bdfe-00e0e8a35fa2" id="0" name="">
+        <Pad uuid="1028ee71-aebb-4975-8bfd-40d6872bc1b0" index="0" name="" status="EMPTY">
+            <Settings id="cc73d33f-e3dc-4b58-b199-2a77577b1d89">
+                <Volume>1.0</Volume>
+                <Loop>false</Loop>
+                <Design id="5603c0a3-f3e6-4191-857b-978ba3846e28" custom="true">
+                    <BackgroundColor>RED2</BackgroundColor>
+                    <PlayColor>YELLOW2</PlayColor>
+                    <CueInColor>LIGHT_GREEN2</CueInColor>
+                </Design>
+                <CustomSettings/>
+                <Triggers>
+                    <Trigger point="START"/>
+                    <Trigger point="EOF_STOP"/>
+                </Triggers>
+            </Settings>
+        </Pad>
+        <Pad uuid="bde56734-a606-4c19-a19b-7ef20aa7b827" index="1" name="" status="EMPTY">
+            <Settings id="0be18dbe-f914-4a11-a470-b4279fe98e0f">
+                <Volume>1.0</Volume>
+                <Loop>false</Loop>
+                <Design custom="false"/>
+                <CustomSettings/>
+                <Triggers>
+                    <Trigger point="START"/>
+                    <Trigger point="EOF_STOP"/>
+                </Triggers>
+            </Settings>
+        </Pad>
+    </Page>
+    <Settings>
+        <Columns>2</Columns>
+        <Rows>1</Rows>
+        <MediaPath active="false"/>
+    </Settings>
+</Project>
diff --git a/pom.xml b/pom.xml
index 4e735ed3fdaf7d8165254248ab14d39fffd7fba2..c55300adc97f3a64a49997d54a7e54c79cd20602 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
     <packaging>pom</packaging>
 
     <properties>
-        <project.build.code>43</project.build.code>
+        <project.build.code>44</project.build.code>
         <project.versionDate>${maven.build.timestamp}</project.versionDate>
         <maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>