diff --git a/install/update.php b/install/update.php
index 44c306985f945f1ba1cd573660f47563a2d1de9a..66deec92c44e765cfc7943bfa3f7996c0540da2f 100644
--- a/install/update.php
+++ b/install/update.php
@@ -71,7 +71,12 @@ $inst->db = new db();
 // Database update is a bit brute force and should be rebuild later ;)
 
 // export the current database data
-system("mysqldump -h $conf[mysql_server_host] -u $conf[mysql_server_ispconfig_user] -p$conf[mysql_server_ispconfig_password] -c -t --add-drop-table --all --quick $conf[mysql_server_database] > existing_db.sql");
+if($conf["mysql_server_admin_password"] != '') {
+	system("mysqldump -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -p$conf[mysql_server_admin_password] -c -t --add-drop-table --all --quick $conf[mysql_server_database] > existing_db.sql");
+} else {
+	system("mysqldump -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -c -t --add-drop-table --all --quick $conf[mysql_server_database] > existing_db.sql");
+}
+
 
 // Delete the old database
 exec("/etc/init.d/mysql stop");
@@ -90,8 +95,11 @@ foreach($db_tables as $table) {
 }
 
 // load old data back into database
-system("mysql -h $conf[mysql_server_host] -u $conf[mysql_server_ispconfig_user] -p$conf[mysql_server_ispconfig_password] $conf[mysql_server_database] < existing_db.sql");
-
+if($conf["mysql_server_admin_password"] != '') {
+	system("mysql -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -p$conf[mysql_server_admin_password] $conf[mysql_server_database] < existing_db.sql");
+} else {
+	system("mysql -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] $conf[mysql_server_database] < existing_db.sql");
+}
 // Configure postfix
 $inst->configure_postfix('dont-create-certs');