diff --git a/install/mysql.sh b/install/mysql.sh
index 927b6a14..74e4f236 100755
--- a/install/mysql.sh
+++ b/install/mysql.sh
@@ -117,87 +117,39 @@ if [ -f $MYSQL_CONFIG ]; then
     echo "Updating mysql configuration in $MYSQL_CONFIG"
 else
     echo "Creating mysql configuration in $MYSQL_CONFIG"
-    cat > $MYSQL_CONFIG <<EOF
-# AlternC - Web Hosting System - MySQL Configuration
-# Automatically generated by AlternC configuration, do not edit
-# This file will be modified on package configuration
-# (e.g. upgrade or dpkg-reconfigure alternc)
-[mysql]
-database=
-
-[client]
-EOF
-    chown root:www-data $MYSQL_CONFIG
-    chmod 640 $MYSQL_CONFIG
 fi
 
 if [ -f $MYSQL_MAIL_CONFIG ]; then
     echo "Updating mysql configuration in $MYSQL_MAIL_CONFIG"
 else
     echo "Creating mysql configuration in $MYSQL_MAIL_CONFIG"
-    cat > $MYSQL_MAIL_CONFIG <<EOF
-# AlternC - Web Hosting System - MySQL mail user Configuration 
+fi
+
+write_mysql_cnf() {
+    local filename="$1"
+    local host=$(echo "$2" | sed -e 's/["]/\\&/g')
+    local db=$(echo "$3" | sed -e 's/["]/\\&/g')
+    local user=$(echo "$4" | sed -e 's/["]/\\&/g')
+    local password=$(echo "$5" | sed -e 's/["]/\\&/g')
+    cat > "$filename" <<EOF
+# AlternC - Web Hosting System - MySQL mail user Configuration
 # Automatically generated by AlternC configuration, do not edit
 # This file will be modified on package configuration
 # (e.g. upgrade or dpkg-reconfigure alternc)
 [mysql]
-database=
+database="$db"
 
 [client]
+host="$host"
+user="$user"
+password="$password"
 EOF
-    chown root:www-data $MYSQL_MAIL_CONFIG
-    chmod 640 $MYSQL_MAIL_CONFIG
-fi
-# create a sed script to create/update the file
-set_value() {
-    var=$1
-    RET=$2
-    file=$3
-    grep -Eq "^ *$var=" $file || echo "$var=" >> $file
-    if [ $file = $MYSQL_CONFIG ]; then
-      SED_SCRIPT_USR="$SED_SCRIPT_USR;s\\^ *$var=.*\\$var=\"$RET\"\\"
-    else
-      SED_SCRIPT_MAIL="$SED_SCRIPT_MAIL;s\\^ *$var=.*\\$var=\"$RET\"\\"
-    fi 
+    chown root:www-data "$filename"
+    chmod 640 "$filename"
 }
 
-SED_SCRIPT_USR=""
-SED_SCRIPT_MAIL=""
-# hostname was empty in older (pre-0.9.6?) versions
-if [ -z "$host" ]; then
-    host="localhost"
-fi
-#filling the config file for the sysusr
-set_value host $host $MYSQL_CONFIG
-set_value database $database $MYSQL_CONFIG
-set_value user $user $MYSQL_CONFIG
-set_value password $password $MYSQL_CONFIG
-
-
-#filling the config file for the mailuser
-set_value host $host $MYSQL_MAIL_CONFIG
-set_value database $database $MYSQL_MAIL_CONFIG
-set_value user $alternc_mail_user $MYSQL_MAIL_CONFIG
-set_value password $alternc_mail_password $MYSQL_MAIL_CONFIG
-
-
-# take extra precautions here with the mysql password:
-# put the sed script in a temporary file
-SED_SCRIPT_NAME=`mktemp`
-cat > $SED_SCRIPT_NAME <<EOF
-$SED_SCRIPT_USR
-EOF
-sed -f "$SED_SCRIPT_NAME" < $MYSQL_CONFIG > $MYSQL_CONFIG.$$
-mv -f $MYSQL_CONFIG.$$ $MYSQL_CONFIG
-rm -f $SED_SCRIPT_NAME
-
-SED_SCRIPT_NAME_MAIL=`mktemp`
-cat > $SED_SCRIPT_NAME_MAIL <<EOF
-$SED_SCRIPT_MAIL
-EOF
-sed -f "$SED_SCRIPT_NAME_MAIL" < $MYSQL_MAIL_CONFIG > $MYSQL_MAIL_CONFIG.$$
-mv -f $MYSQL_MAIL_CONFIG.$$ $MYSQL_MAIL_CONFIG
-rm -f $SED_SCRIPT_NAME_MAIL
+write_mysql_cnf "$MYSQL_CONFIG" "$host" "$database" "$user" "$password"
+write_mysql_cnf "$MYSQL_MAIL_CONFIG" "$host" "$database" "$alternc_mail_user" "$alternc_mail_password"
 
 # Now we should be able to use the mysql configuration
 mysql="/usr/bin/mysql --defaults-file=$MYSQL_CONFIG"