diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java b/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
index 9b79844e6e93dc9bc9b8b943391ffdd3fda59fc3..1c1900278c8f6f7bee296baae966679228bb9571 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
@@ -27,6 +27,7 @@ public class Settings
 	private Boolean autoBackupActivated;
 	private Integer autoBackupDays;
 	private AutoBackupTime autoBackupTime;
+	private Integer autoBackupFilesToKeep;
 
 	public Settings()
 	{
@@ -46,6 +47,7 @@ public class Settings
 		defaultSettings.setAutoBackupActivated(false);
 		defaultSettings.setAutoBackupDays(1);
 		defaultSettings.setAutoBackupTime(AutoBackupTime.DEFAULT);
+		defaultSettings.setAutoBackupFilesToKeep(3);
 
 		return defaultSettings;
 	}
@@ -174,6 +176,16 @@ public class Settings
 		this.autoBackupTime = autoBackupTime;
 	}
 
+	public Integer getAutoBackupFilesToKeep()
+	{
+		return autoBackupFilesToKeep;
+	}
+
+	public void setAutoBackupFilesToKeep(Integer autoBackupFilesToKeep)
+	{
+		this.autoBackupFilesToKeep = autoBackupFilesToKeep;
+	}
+
 	@Override
 	public String toString()
 	{
@@ -190,6 +202,7 @@ public class Settings
 				", autoBackupActivated=" + autoBackupActivated +
 				", autoBackupDays=" + autoBackupDays +
 				", autoBackupTime=" + autoBackupTime +
+				", autoBackupFilesToKeep=" + autoBackupFilesToKeep +
 				'}';
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
index 722505a2219b3c7e7f8c3ece2b58719030ff852b..1051628f5e73f8dc4c17d90cdfd3607d91e7b5bf 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
@@ -112,6 +112,7 @@ public class SettingsController extends BaseController
 			final Settings defaultSettings = Settings.getDefault();
 			settings.setAutoBackupDays(defaultSettings.getAutoBackupDays());
 			settings.setAutoBackupTime(defaultSettings.getAutoBackupTime());
+			settings.setAutoBackupFilesToKeep(defaultSettings.getAutoBackupFilesToKeep());
 		}
 
 		if(bindingResult.hasErrors())
diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java
index 31efe6b18219944e1f9d60a15c9d435717be3a0c..049596dd9f87a0b4c77bb73246e2dee5091e9c53 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsValidator.java
@@ -15,6 +15,7 @@ public class SettingsValidator implements Validator
 
 	public void validate(Object obj, Errors errors)
 	{
-		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "autoBackupDays", Strings.WARNING_SETTINGS_EMPTY_SETTINGS_AUTO_BACKUP_DAYS);
+		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "autoBackupDays", Strings.WARNING_EMPTY_NUMBER);
+		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "autoBackupFilesToKeep", Strings.WARNING_EMPTY_NUMBER);
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java b/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
index 550b5ba93df092773840720ba45d2e625a2a73f3..f51bbe5a12fd6f08af0b548d9d104d184b0fccce 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
@@ -38,9 +38,9 @@ public class Strings
     public static final String WARNING_SETTINGS_PASSWORD_LENGTH = "warning.settings.password.length";
     public static final String WARNING_SETTINGS_PASSWORD_CONFIRMATION_EMPTY = "warning.settings.password.confirmation.empty";
     public static final String WARNING_SETTINGS_PASSWORD_CONFIRMATION_WRONG = "warning.settings.password.confirmation.wrong";
-    public static final String WARNING_SETTINGS_EMPTY_SETTINGS_AUTO_BACKUP_DAYS = "warning.settings.empty.auto.backup.days";
     public static final String WARNING_EMPTY_CHART_NAME = "warning.empty.chart.name";
     public static final String WARNING_EMPTY_CHART_SCRIPT = "warning.empty.chart.script";
+    public static final String WARNING_EMPTY_NUMBER = "warning.empty.number";
 
     //REPORT
     public static final String REPORT_FOOTER_LEFT = "report.footer.left";
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index e4d6009ae765feed65d5f3fb9648836bbfdaeb69..ec30d6ac0361fe5c187887c0d37dee4b0b143a10 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -122,14 +122,13 @@ warning.duplicate.account.name=Es existiert bereits ein Konto mit diesem Namen.
 warning.empty.category.color=Die Kategoriefarbe darf nicht leer sein.
 warning.empty.transaction.name=Das Feld f�r den Namen darf nicht leer sein.
 warning.transaction.amount=Gib eine g�ltige Zahl f�r den Betrag ein.
-warning.transaction.number=Gib eine g�ltige Zahl gr��er 0 ein.
+warning.empty.number=Gib eine g�ltige Zahl gr��er 0 ein.
 warning.empty.transaction.date=Bitte w�hle ein Datum aus.
 warning.wrong.password=Das Passwort ist nicht korrekt.
 warning.settings.password.empty=Bitte gib ein Passwort ein.
 warning.settings.password.length=Das Passwort muss mindestens drei Zeichen lang sein.
 warning.settings.password.confirmation.empty=Bitte gib dein Passwort zur Best�tigung erneut ein.
 warning.settings.password.confirmation.wrong=Passwort und Passwort Wiederholung stimmen nicht �berein.
-warning.settings.empty.auto.backup.days=Gib eine g�ltige Zahl gr��er 0 ein.
 warning.empty.chart.name=Bitte gib einen Namen ein.
 warning.empty.chart.script=Bitte gib ein Script ein.
 
@@ -179,6 +178,7 @@ settings.backup.auto.deactivated=Aus
 settings.backup.auto.activated=An
 settings.backup.auto.days=Intervall in Tagen
 settings.backup.auto.time=Uhrzeit
+settings.backup.auto.files.to.keep=Anzahl aufzubewahrender Backups
 
 settings.database.import=Importieren
 settings.database.export=Exportieren
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index 0fbd729b119a523a2733011bfbc13a73c839d2ad..fd7f42ff01203d9b39d6d5da65e212a155ef1d81 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -122,14 +122,13 @@ warning.duplicate.account.name=An account with this name is already existing.
 warning.empty.category.color=The category color should not be empty.
 warning.empty.transaction.name=The field for the name can not be empty.
 warning.transaction.amount=Please enter a valid number in the amount field.
-warning.transaction.number=Please enter a valid number greater than 0.
+warning.empty.number=Please enter a valid number greater than 0.
 warning.empty.transaction.date=Please select a date.
 warning.wrong.password=The password is not correct.
 warning.settings.password.empty=Please enter a password.
 warning.settings.password.length=The password must be at least three characters long.
 warning.settings.password.confirmation.empty=Please enter your password again for confirmation.
 warning.settings.password.confirmation.wrong=Password and password confirmation do not match.
-warning.settings.empty.auto.backup.days=Please enter a valid number greater than 0.
 warning.empty.chart.name=Please insert a name.
 warning.empty.chart.script=Please insert a script.
 
@@ -179,6 +178,7 @@ settings.backup.auto.deactivated=Off
 settings.backup.auto.activated=On
 settings.backup.auto.days=Interval in days
 settings.backup.auto.time=Time of day
+settings.backup.auto.files.to.keep=Number of backups to keep
 
 settings.database.import=Import
 settings.database.export=Export
diff --git a/src/main/resources/static/js/settings.js b/src/main/resources/static/js/settings.js
index 3970e855c1cda67e15f0de96c63f8fffb135a628..886dc2089a95396d0cff5241d70e38ff034db5ff 100644
--- a/src/main/resources/static/js/settings.js
+++ b/src/main/resources/static/js/settings.js
@@ -26,6 +26,15 @@ $(document).ready(function()
         });
     }
 
+    let autoBackupFilesToKeep= $('#settings-backup-auto-files-to-keep');
+    if(autoBackupFilesToKeep.length)
+    {
+        autoBackupFilesToKeep.on('change keydown paste input', function()
+        {
+            validateNumber(autoBackupFilesToKeep.val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessage);
+        });
+    }
+
     // on initial page load
     let autoBackupCheckbox = document.getElementsByName("autoBackupActivated")[0];
     $('#settings-auto-backup').toggle(autoBackupCheckbox.checked);
@@ -36,7 +45,9 @@ function validateForm()
     let autoBackupCheckbox = document.getElementsByName("autoBackupActivated")[0];
     if(autoBackupCheckbox.checked)
     {
-        return validateNumber($('#settings-backup-auto-days').val(), 'settings-backup-auto-days', "hidden-settings-backup-auto-days", numberValidationMessage);
+        let autoBackupDaysValid = validateNumber($('#settings-backup-auto-days').val(), "settings-backup-auto-days", "hidden-settings-backup-auto-days", numberValidationMessage);
+        let autoBackupFilesToKeepValid = validateNumber($('#settings-backup-auto-files-to-keep').val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keepp", numberValidationMessage);
+        return autoBackupDaysValid && autoBackupFilesToKeepValid;
     }
 
     return true;
diff --git a/src/main/resources/templates/settings/settings.ftl b/src/main/resources/templates/settings/settings.ftl
index 3d677210ca1a6e7757b2c75624a54a07360d0ad5..06176c65fa4f5f84e99fc466ae2b272a1788774c 100644
--- a/src/main/resources/templates/settings/settings.ftl
+++ b/src/main/resources/templates/settings/settings.ftl
@@ -115,13 +115,19 @@
                             <input type="hidden" id="hidden-settings-backup-auto-days" name="autoBackupDays" value="<#if settings.getAutoBackupActivated()??>${settings.getAutoBackupDays()}</#if>">
 
                             <script>
-                                numberValidationMessage = "${locale.getString("warning.transaction.number")}";
+                                numberValidationMessage = "${locale.getString("warning.empty.number")}";
                             </script>
 
                             <div class="input-field col s12 m12 l8 offset-l2">
                                 <input id="settings-backup-auto-time" type="text" name="autoBackupTime" <@validation.validation "autoBackupTime"/> value="<#if settings.getAutoBackupActivated()??>${settings.getAutoBackupTime().name()}</#if>">
                                 <label for="settings-backup-auto-time">${locale.getString("settings.backup.auto.time")}</label>
                             </div>
+
+                            <div class="input-field col s12 m12 l8 offset-l2">
+                                <input id="settings-backup-auto-files-to-keep" type="text" <@validation.validation "autoBackupFilesToKeep"/> value="<#if settings.getAutoBackupActivated()??>${settings.getAutoBackupFilesToKeep()}</#if>">
+                                <label for="settings-backup-auto-files-to-keep">${locale.getString("settings.backup.auto.files.to.keep")}</label>
+                            </div>
+                            <input type="hidden" id="hidden-settings-backup-auto-files-to-keep" name="autoBackupFilesToKeep" value="<#if settings.getAutoBackupActivated()??>${settings.getAutoBackupFilesToKeep()}</#if>">
                         </div>
 
                         <br>
diff --git a/src/main/resources/templates/transactions/newTransactionMacros.ftl b/src/main/resources/templates/transactions/newTransactionMacros.ftl
index 6492928d7f5a0bcbc994e72dfa41750b0b94547c..93c4d0af7ec62fd5d700042596f00b72f939ba5a 100644
--- a/src/main/resources/templates/transactions/newTransactionMacros.ftl
+++ b/src/main/resources/templates/transactions/newTransactionMacros.ftl
@@ -74,7 +74,7 @@
 
     <script>
         amountValidationMessage = "${locale.getString("warning.transaction.amount")}";
-        numberValidationMessage = "${locale.getString("warning.transaction.number")}";
+        numberValidationMessage = "${locale.getString("warning.empty.number")}";
     </script>
 </#macro>