diff --git a/apps/files_encryption/ajax/changeRecoveryPassword.php b/apps/files_encryption/ajax/changeRecoveryPassword.php
index 71fbe333fe0bb450640c2c8dd9e35b95c63de82b..bf647f2c8fa94d0094a5b04e95423190d69a9532 100644
--- a/apps/files_encryption/ajax/changeRecoveryPassword.php
+++ b/apps/files_encryption/ajax/changeRecoveryPassword.php
@@ -21,6 +21,32 @@ $return = false;
 
 $oldPassword = $_POST['oldPassword'];
 $newPassword = $_POST['newPassword'];
+$confirmPassword = $_POST['confirmPassword'];
+
+//check if both passwords are the same
+if (empty($_POST['oldPassword'])) {
+	$errorMessage = $l->t('Please provide the old recovery password');
+	\OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+	exit();
+}
+
+if (empty($_POST['newPassword'])) {
+	$errorMessage = $l->t('Please provide a new recovery password');
+	\OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+	exit();
+}
+
+if (empty($_POST['confirmPassword'])) {
+	$errorMessage = $l->t('Please repeat the new recovery password');
+	\OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+	exit();
+}
+
+if ($_POST['newPassword'] !== $_POST['confirmPassword']) {
+	$errorMessage = $l->t('Repeated recovery key password does not match the provided recovery key password');
+	\OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+	exit();
+}
 
 $view = new \OC\Files\View('/');
 $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \OCP\User::getUser());
diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js
index 38a5cd1b556b69038ebcf37a5da2787c9422165d..2242c1f71248e5bc022f9444438a7a6f587e8839 100644
--- a/apps/files_encryption/js/settings-admin.js
+++ b/apps/files_encryption/js/settings-admin.js
@@ -41,17 +41,14 @@ $(document).ready(function(){
 	$('button:button[name="submitChangeRecoveryKey"]').click(function() {
 		var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val();
 		var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val();
-		OC.msg.startSaving('#encryption .msg');
+		var confirmNewPassword = $('#repeatedNewEncryptionRecoveryPassword').val();
+		OC.msg.startSaving('#encryptionChangeRecoveryKey .msg');
 		$.post(
 		OC.filePath( 'files_encryption', 'ajax', 'changeRecoveryPassword.php' )
-			, { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword }
+			, { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword, confirmPassword: confirmNewPassword }
 			,  function( data ) {
-				if (data.status == "error") {
-					OC.msg.finishedSaving('#encryption .msg', data);
-				} else {
-					OC.msg.finishedSaving('#encryption .msg', data);
+					OC.msg.finishedSaving('#encryptionChangeRecoveryKey .msg', data);
 				}
-			}
 		);
 	});
 
diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php
index e97f64b6482f5d6503589945fbc51c76eb6d20ca..d003f245bb33c4abd5d998442bf275acfff08f8c 100644
--- a/apps/files_encryption/templates/settings-admin.php
+++ b/apps/files_encryption/templates/settings-admin.php
@@ -34,8 +34,9 @@
 	</p>
 	<br/><br/>
 
-	<p name="changeRecoveryPasswordBlock" <?php if ($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>>
+	<p name="changeRecoveryPasswordBlock" id="encryptionChangeRecoveryKey" <?php if ($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>>
 		<strong><?php p($l->t("Change recovery key password:")); ?></strong>
+		<span class="msg"></span>
 		<br/><br/>
 		<input
 			type="password"
@@ -61,7 +62,6 @@
 			name="submitChangeRecoveryKey">
 				<?php p($l->t("Change Password")); ?>
 		</button>
-		<span class="msg"></span>
 	</p>
 	<?php endif; ?>
 </form>