diff --git a/src/freedombone-restore-local b/src/freedombone-restore-local
index 40fdb45fd09afc39b1265e4e6bd23e11774c029f..b6b0ad7b77ec950006b132b4fce4e51fb1905bc3 100755
--- a/src/freedombone-restore-local
+++ b/src/freedombone-restore-local
@@ -249,15 +249,6 @@ function restore_letsencrypt {
     fi
 }
 
-function store_original_mariadb_password {
-    if [ ! -f /root/.mariadboriginal ]; then
-        echo $'Storing original mariadb password'
-        ORIGINAL_MARIADB_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
-        # We can store this in plaintext because it will soon be of historical interest only
-        echo -n "$ORIGINAL_MARIADB_PASSWORD" > /root/.mariadboriginal
-    fi
-}
-
 function restore_passwordstore {
     if [[ $RESTORE_APP != 'all' ]]; then
         if [[ $RESTORE_APP != 'passwords' ]]; then
diff --git a/src/freedombone-restore-remote b/src/freedombone-restore-remote
index bcaacdb210049d29b2ef84938f86b486fc1d24e8..88ab638e1fea9a54a313654518fb06ca4658afd7 100755
--- a/src/freedombone-restore-remote
+++ b/src/freedombone-restore-remote
@@ -185,13 +185,16 @@ function restore_mariadb {
         temp_restore_dir=/root/tempmariadb
         restore_directory_from_friend $temp_restore_dir mariadb
 
+        store_original_mariadb_password
+
         echo $'Obtaining MariaDB password'
-        db_pass=$(${PROJECT_NAME}-pass -u root -a mariadb)
+        db_pass=$(cat /root/.mariadboriginal)
         if [ ${#db_pass} -gt 0 ]; then
             echo $"Restore the MariaDB user table"
-            mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
+            mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
             if [ ! "$?" = "0" ]; then
                 echo $"Try again using the password obtained from backup"
+                db_pass=$(${PROJECT_NAME}-pass -u root -a mariadb)
                 mysqlsuccess=$(mysql -u root --password="$db_pass" mysql -o < ${temp_restore_dir}${temp_restore_dir}/mysql.sql)
             fi
             if [ ! "$?" = "0" ]; then
@@ -200,9 +203,9 @@ function restore_mariadb {
             fi
             echo $"Restarting database"
             systemctl restart mariadb
-            echo $"Change the MariaDB password to the backup version"
-            DATABASE_PASSWORD="$db_pass"
-            ${PROJECT_NAME}-pass -u root -a mariadb -p "$DATABASE_PASSWORD"
+            echo $"Ensure MariaDB handles authentication"
+            MARIADB_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
+            mariadb_fix_authentication
         fi
         rm -rf ${temp_restore_dir}
     fi
@@ -227,6 +230,7 @@ function restore_passwordstore {
         fi
     fi
     if [ -d $SERVER_DIRECTORY/backup/passwordstore ]; then
+        store_original_mariadb_password
         echo $"Restoring password store"
         restore_directory_from_friend / passwordstore
     fi
diff --git a/src/freedombone-utils-database b/src/freedombone-utils-database
index b1f8b84ad8330bf9357dd11e918be229d7fa82cb..252805461726e7f8933788510fb74d543f0729bd 100755
--- a/src/freedombone-utils-database
+++ b/src/freedombone-utils-database
@@ -13,7 +13,7 @@
 # License
 # =======
 #
-# Copyright (C) 2014-2016 Bob Mottram <bob@freedombone.net>
+# Copyright (C) 2014-2017 Bob Mottram <bob@freedombone.net>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
@@ -34,6 +34,15 @@ MARIADB_PASSWORD=
 # Used to indicate whether the backup contains MariaDB databases or not
 BACKUP_INCLUDES_DATABASES="no"
 
+function store_original_mariadb_password {
+    if [ ! -f /root/.mariadboriginal ]; then
+        echo $'Storing original mariadb password'
+        ORIGINAL_MARIADB_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
+        # We can store this in plaintext because it will soon be of historical interest only
+        echo -n "$ORIGINAL_MARIADB_PASSWORD" > /root/.mariadboriginal
+    fi
+}
+
 function keep_database_running {
     if [ ! $(daemon_is_running mariadb) ]; then
         systemctl start mariadb