diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
index 8da778b15492ddbfc194140630602fb7c44e2ebf..86cc46e29ab62a678a218b654b8465a24185c715 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
@@ -58,19 +58,17 @@ public class SettingsController extends BaseController
 	@RequestMapping(value = "/settings/save", method = RequestMethod.POST)
 	public String post(Model model, @ModelAttribute("Settings") Settings settings, BindingResult bindingResult,
 					   @RequestParam(value = "password") String password,
+					   @RequestParam(value = "passwordConfirmation") String passwordConfirmation,
 					   @RequestParam(value = "languageType") String languageType)
 	{
-		if(password == null || password.equals(""))
-		{
-			bindingResult.addError(new FieldError("Settings", "password", password, false, new String[]{Strings.WARNING_SETTINGS_PASSWORD_EMPTY}, null, Strings.WARNING_SETTINGS_PASSWORD_EMPTY));
-		}
-		else if(password.length() < 3)
+		settings.setLanguage(LanguageType.fromName(languageType));
+
+		FieldError error = validatePassword(password, passwordConfirmation);
+		if(error != null)
 		{
-			bindingResult.addError(new FieldError("Settings", "password", password, false, new String[]{Strings.WARNING_SETTINGS_PASSWORD_LENGTH}, null, Strings.WARNING_SETTINGS_PASSWORD_LENGTH));
+			bindingResult.addError(error);
 		}
 
-		settings.setLanguage(LanguageType.fromName(languageType));
-
 		if(bindingResult.hasErrors())
 		{
 			model.addAttribute("error", bindingResult);
@@ -97,6 +95,30 @@ public class SettingsController extends BaseController
 		return "redirect:/settings";
 	}
 
+	private FieldError validatePassword(String password, String passwordConfirmation)
+	{
+		if(password == null || password.equals(""))
+		{
+			return new FieldError("Settings", "password", password, false, new String[]{Strings.WARNING_SETTINGS_PASSWORD_EMPTY}, null, Strings.WARNING_SETTINGS_PASSWORD_EMPTY);
+		}
+		else if(password.length() < 3)
+		{
+			return new FieldError("Settings", "password", password, false, new String[]{Strings.WARNING_SETTINGS_PASSWORD_LENGTH}, null, Strings.WARNING_SETTINGS_PASSWORD_LENGTH);
+		}
+
+		if(passwordConfirmation == null || passwordConfirmation.equals(""))
+		{
+			return new FieldError("Settings", "passwordConfirmation", passwordConfirmation, false, new String[]{Strings.WARNING_SETTINGS_PASSWORD_CONFIRMATION_EMPTY}, null, Strings.WARNING_SETTINGS_PASSWORD_CONFIRMATION_EMPTY);
+		}
+
+		if(!password.equals(passwordConfirmation))
+		{
+			return new FieldError("Settings", "passwordConfirmation", passwordConfirmation, false, new String[]{Strings.WARNING_SETTINGS_PASSWORD_CONFIRMATION_WRONG}, null, Strings.WARNING_SETTINGS_PASSWORD_CONFIRMATION_WRONG);
+		}
+
+		return null;
+	}
+
 	@RequestMapping("/settings/database/requestExport")
 	public void downloadFile(HttpServletResponse response)
 	{
diff --git a/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java b/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
index 29d778ff30c33b80505233bca1566e77b12a6494..4378afd78d3a809dfface55261b533234bfb44be 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/utils/Strings.java
@@ -217,6 +217,9 @@ public class Strings
     public static final String WARNING_WRONG_YEAR = "warning.wrong.year";
     public static final String WARNING_SETTINGS_PASSWORD_EMPTY = "warning.settings.password.empty";
     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";
+
 
     //ERROR
     public static final String ERROR_UNKNOWN_HOST = "error.unknown.host";
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index f3c80ec1f088cf7bcdac5488c4d83abbe3157ecc..26cfe205577a09b37576d8473dffb17668c2d428 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -229,6 +229,8 @@ warning.empty.year=Bitte gib ein Jahr ein.
 warning.wrong.year=Bitte gib eine g�ltige Jahreszahl ein (4 Ziffern).
 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.
 
 # ERROR
 error.unknown.host=Es konnte keine Verbindung mit dem Internet hergestellt werden.
@@ -318,6 +320,7 @@ menu.accounts=Konten
 category.new.label.name=Name
 
 settings.password=Passwort
+settings.password.confirmation=Passwort Wiederholung
 settings.currency=W�hrung
 settings.rest=�bertrag
 settings.rest.deactivated=Aus
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index a4bb2ec83b72c24256b931a340293ced94ad4693..2e6eedfa85d59a72380cd9f71d466162a609ed50 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -229,6 +229,8 @@ warning.empty.year=Please enter a year.
 warning.wrong.year=Please enter a valid year (4 digits).
 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.
 
 # ERROR
 error.unknown.host=Could not connect to the Internet.
@@ -318,6 +320,7 @@ menu.accounts=Accounts
 category.new.label.name=Name
 
 settings.password=Password
+settings.password.confirmation=Password Confirmation
 settings.currency=Currency
 settings.rest=Rest
 settings.rest.deactivated=Off
diff --git a/src/main/resources/templates/settings.ftl b/src/main/resources/templates/settings.ftl
index 13d2f956b055dd3f559774df419bfa1928ddeae2..495d835a4e23e63f17388ee1bb2dcfe89281d08f 100644
--- a/src/main/resources/templates/settings.ftl
+++ b/src/main/resources/templates/settings.ftl
@@ -24,11 +24,19 @@
                         <#-- password -->
                         <div class="row">
                             <div class="input-field col s12 m12 l8 offset-l2">
-                                <input id="settings-password" type="text" name="password" <@validation.validation "password"/> value="•••••">
+                                <input id="settings-password" type="password" name="password" <@validation.validation "password"/> value="•••••">
                                 <label for="settings-password">${locale.getString("settings.password")}</label>
                             </div>
                         </div>
 
+                        <#-- password confirmation-->
+                        <div class="row">
+                            <div class="input-field col s12 m12 l8 offset-l2">
+                                <input id="settings-password-confirmation" type="password" name="passwordConfirmation" <@validation.validation "passwordConfirmation"/> value="•••••">
+                                <label for="settings-password-confirmation">${locale.getString("settings.password.confirmation")}</label>
+                            </div>
+                        </div>
+
                         <#-- currency -->
                         <div class="row">
                             <div class="input-field col s12 m12 l8 offset-l2">