diff --git a/debian/control b/debian/control
index 5deb042..a5899c9 100644
--- a/debian/control
+++ b/debian/control
@@ -114,7 +114,8 @@ Depends: ${shlibs:Depends}, ${misc:Depends},
 	 opendnssec-common (= ${source:Version}),
 	 mysql-client,
 	 opendnssec-enforcer,
-	 libdbd-mysql-perl
+	 libdbd-mysql-perl,
+	 xml2
 Pre-Depends: dpkg (>= 1.15.7.2~) | dpkg-maintscript-helper
 Provides: opendnssec-enforcer-backend
 Conflicts: opendnssec-enforcer-backend
diff --git a/debian/opendnssec-enforcer-mysql.postinst b/debian/opendnssec-enforcer-mysql.postinst
index 69381a3..7401429 100644
--- a/debian/opendnssec-enforcer-mysql.postinst
+++ b/debian/opendnssec-enforcer-mysql.postinst
@@ -25,6 +25,59 @@ done
 
 case "$1" in
     configure)
+	conf=/etc/opendnssec/conf.xml
+	basepath=/Configuration/Enforcer/Datastore/MySQL
+
+	# Check if the MySQL database is configured at all
+	if xml2 < $conf | grep -q "^${basepath}"; then
+	    mysql_host=$(xml2 < $conf | grep "^${basepath}/Host=" | cut -f 2 -d =)
+	    mysql_port=$(xml2 < $conf | grep "^${basepath}/Host/@port=" | cut -f 2 -d =)
+	    mysql_database=$(xml2 < $conf | grep "^${basepath}/Database=" | cut -f 2 -d =)
+	    mysql_username=$(xml2 < $conf | grep "^${basepath}/Username=" | cut -f 2 -d =)
+	    mysql_password=$(xml2 < $conf | grep "^${basepath}/Password=" | cut -f 2 -d =)
+
+	    TMPDIR=$(mktemp -d opendnssec.XXXXXXXX) || exit 1
+	    cat > "${TMPDIR}/my.cnf" <<EOF
+[client]
+host=${mysql_host}
+port=${mysql_port:-3306}
+username=${mysql_username}
+password=${mysql_password}
+database=${mysql_database}
+EOF
+
+	    mysql --defaults-extra-file="${TMPDIR}/my.cnf" --batch ${mysql_database} <<EOF
+DELIMITER $$;
+DROP PROCEDURE IF EXISTS DropFK $$;
+CREATE PROCEDURE DropFK ( 
+IN parm_table_name VARCHAR(100), 
+IN parm_key_name VARCHAR(100) 
+) 
+BEGIN
+-- Verify the foreign key exists 
+IF EXISTS (SELECT NULL FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND CONSTRAINT_NAME = parm_key_name) THEN 
+-- Turn the parameters into local variables 
+set @ParmTable = parm_table_name ; 
+set @ParmKey = parm_key_name ; 
+-- Create the full statement to execute 
+set @StatementToExecute = concat('ALTER TABLE ',@ParmTable,' DROP FOREIGN KEY ',@ParmKey); 
+-- Prepare and execute the statement that was built 
+prepare DynamicStatement from @StatementToExecute ; 
+execute DynamicStatement ; 
+-- Cleanup the prepared statement 
+deallocate prepare DynamicStatement ; 
+END IF; 
+END $$ 
+DELIMITER ; $$
+EOF
+
+	    mysql --defaults-extra-file="${TMPDIR}/my.cnf" --batch ${mysql_database} <<EOF
+CALL DropFK(dnsseckeys, dnsseckeys_ibfk_1);
+EOF
+
+	    rm "${TMPDIR}/my.cnf"
+	    rmdir "${TMPDIR}"
+	fi
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
