diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
index 4ecfce7d3e0c91836982bc3ce25708bbd4d44d41..48f6140d92b8987f897d28e78675cea6c41e0cf1 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
@@ -3,7 +3,6 @@ package de.deadlocker8.budgetmaster.database;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import de.deadlocker8.budgetmaster.categories.Category;
-import de.deadlocker8.budgetmaster.database.legacy.LegacyParser;
 import de.deadlocker8.budgetmaster.database.model.BackupDatabase;
 import de.deadlocker8.budgetmaster.database.model.v4.BackupDatabase_v4;
 import de.deadlocker8.budgetmaster.database.model.v5.BackupDatabase_v5;
@@ -17,6 +16,7 @@ public class DatabaseParser
 {
 	final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 
+	private final int MINIMUM_VERSION = 4;
 	private final int LATEST_VERSION = 5;
 
 	private final String jsonString;
@@ -29,6 +29,39 @@ public class DatabaseParser
 	}
 
 	public Database parseDatabaseFromJSON() throws IllegalArgumentException
+	{
+		int version = parseVersion();
+
+		if(version < MINIMUM_VERSION)
+		{
+			throw new IllegalArgumentException(Localization.getString("error.database.import.version.too.old", version, MINIMUM_VERSION));
+		}
+
+		BackupDatabase importedDatabase = null;
+
+		if(version == 4)
+		{
+			BackupDatabase_v4 parsedDatabase = new DatabaseParser_v4(jsonString).parseDatabaseFromJSON();
+			LOGGER.debug(MessageFormat.format("Parsed database with {0} transactions, {1} categories, {2} accounts and {3} templates", parsedDatabase.getTransactions().size(), parsedDatabase.getCategories().size(), parsedDatabase.getAccounts().size(), parsedDatabase.getTemplates().size()));
+			importedDatabase = parsedDatabase;
+		}
+
+		if(version == 5)
+		{
+			BackupDatabase_v5 parsedDatabase = new DatabaseParser_v5(jsonString).parseDatabaseFromJSON();
+			LOGGER.debug(MessageFormat.format("Parsed database with {0} transactions, {1} categories, {2} accounts, {3} templates {4} charts and {5} images", parsedDatabase.getTransactions().size(), parsedDatabase.getCategories().size(), parsedDatabase.getAccounts().size(), parsedDatabase.getTemplates().size(), parsedDatabase.getCharts().size(), parsedDatabase.getImages().size()));
+			importedDatabase = parsedDatabase;
+		}
+
+		if(importedDatabase == null)
+		{
+			throw new IllegalArgumentException(Localization.getString("error.database.import.unknown.version"));
+		}
+
+		return upgradeDatabase(importedDatabase);
+	}
+
+	private int parseVersion()
 	{
 		try
 		{
@@ -41,43 +74,7 @@ public class DatabaseParser
 
 			int version = root.get("VERSION").getAsInt();
 			LOGGER.info(MessageFormat.format("Parsing BudgetMaster database with version {0}", version));
-
-			BackupDatabase importedDatabase = null;
-
-			if(version == 2)
-			{
-				final Database database = new LegacyParser(jsonString, categoryNone).parseDatabaseFromJSON();
-				LOGGER.debug(MessageFormat.format("Parsed database with {0} transactions, {1} categories and {2} accounts", database.getTransactions().size(), database.getCategories().size(), database.getAccounts().size()));
-				return database;
-			}
-
-			if(version == 3)
-			{
-				final Database database = new DatabaseParser_v3(jsonString).parseDatabaseFromJSON();
-				LOGGER.debug(MessageFormat.format("Parsed database with {0} transactions, {1} categories and {2} accounts", database.getTransactions().size(), database.getCategories().size(), database.getAccounts().size()));
-				return database;
-			}
-
-			if(version == 4)
-			{
-				BackupDatabase_v4 parsedDatabase = new DatabaseParser_v4(jsonString).parseDatabaseFromJSON();
-				LOGGER.debug(MessageFormat.format("Parsed database with {0} transactions, {1} categories, {2} accounts and {3} templates", parsedDatabase.getTransactions().size(), parsedDatabase.getCategories().size(), parsedDatabase.getAccounts().size(), parsedDatabase.getTemplates().size()));
-				importedDatabase = parsedDatabase;
-			}
-
-			if(version == 5)
-			{
-				BackupDatabase_v5 parsedDatabase = new DatabaseParser_v5(jsonString).parseDatabaseFromJSON();
-				LOGGER.debug(MessageFormat.format("Parsed database with {0} transactions, {1} categories, {2} accounts, {3} templates {4} charts and {5} images", parsedDatabase.getTransactions().size(), parsedDatabase.getCategories().size(), parsedDatabase.getAccounts().size(), parsedDatabase.getTemplates().size(), parsedDatabase.getCharts().size(), parsedDatabase.getImages().size()));
-				importedDatabase = parsedDatabase;
-			}
-
-			if(importedDatabase == null)
-			{
-				throw new IllegalArgumentException(Localization.getString("error.database.import.unknown.version"));
-			}
-
-			return upgradeDatabase(importedDatabase);
+			return version;
 		}
 		catch(Exception e)
 		{
diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties
index 62bb26e9e0ebd0460ad4c34f0200dc6b38cb4666..b98a9810b3c8d8e3394ebc04d7530d43bfdf3599 100644
--- a/src/main/resources/languages/base_de.properties
+++ b/src/main/resources/languages/base_de.properties
@@ -19,6 +19,7 @@ error.title.database.import=Importfehler
 error.text.database.import=Beim Importieren der Datei ist ein Fehler aufgetreten.<br>Details:<br>{0}
 error.database.import.invalid.json=Die hochgeladene JSON Datei ist ungültig.
 error.database.import.unknown.version=Die hochgeladene JSON Datei enthält keine gültige Definition einer BudgetMaster Datenbank.
+error.database.import.version.too.old=Die hochgeladene JSON Datei ist zu alt. Version: {0} Mindestversion: {1}
 
 # TITLE
 title.incomes=Einnahmen
diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties
index 30c54ae148100291459049e3788039dd0c136779..5f2b3f655033105f947c3d47b1ad0022404f96fe 100644
--- a/src/main/resources/languages/base_en.properties
+++ b/src/main/resources/languages/base_en.properties
@@ -19,6 +19,8 @@ error.title.database.import=Import Error
 error.text.database.import=An error occurred while importing the file.<br>Details:<br>{0}
 error.database.import.invalid.json=The uploaded JSON File is invalid.
 error.database.import.unknown.version=The uploaded JSON File does not contain a valid BudgetMaster database definition.
+error.database.import.version.too.old=The uploaded JSON File is too old. Version: {0} Minimum version: {1}
+
 
 # TITLE
 title.incomes=Incomes
diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParserTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParserTest.java
index 21fa45aa9de25a650ef77f9a7485143ecee0be42..24773d6650a4c7edb49909e5f75d1e72fa5ba804 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParserTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParserTest.java
@@ -6,6 +6,8 @@ import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.database.DatabaseParser;
 import de.thecodelabs.utils.util.Localization;
 import de.thecodelabs.utils.util.Localization.LocalizationDelegate;
+import de.thecodelabs.utils.util.localization.LocalizationMessageFormatter;
+import de.thecodelabs.utils.util.localization.formatter.JavaMessageFormatter;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -16,6 +18,7 @@ import java.nio.file.Paths;
 import java.util.Locale;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 
 public class DatabaseParserTest
@@ -31,6 +34,12 @@ public class DatabaseParserTest
 				return Locale.ENGLISH;
 			}
 
+			@Override
+			public LocalizationMessageFormatter messageFormatter()
+			{
+				return new JavaMessageFormatter();
+			}
+
 			@Override
 			public String getBaseResource()
 			{
@@ -74,9 +83,9 @@ public class DatabaseParserTest
 		categoryNone.setID(1);
 
 		DatabaseParser importer = new DatabaseParser(json, categoryNone);
-		final Database database = importer.parseDatabaseFromJSON();
-		assertThat(database.getTransactions())
-				.hasSize(6);
+		assertThatThrownBy(importer::parseDatabaseFromJSON)
+				.isInstanceOf(IllegalArgumentException.class)
+				.hasMessageContaining("too old");
 	}
 
 	@Test
@@ -87,8 +96,8 @@ public class DatabaseParserTest
 		categoryNone.setID(1);
 
 		DatabaseParser importer = new DatabaseParser(json, categoryNone);
-		final Database database = importer.parseDatabaseFromJSON();
-		assertThat(database.getTransactions())
-				.hasSize(4);
+		assertThatThrownBy(importer::parseDatabaseFromJSON)
+				.isInstanceOf(IllegalArgumentException.class)
+				.hasMessageContaining("too old");
 	}
 }
\ No newline at end of file