-root="$1"
-question="$2"
-value="$3"
-seen="$4"
-[ "$seen" ] || seen=true
-
-if ! (echo "SET $question $value"; echo "FSET $question seen $seen") | chroot "$1" debconf-communicate -fnoninteractive live-initramfs >/dev/null; then
- chroot "$1" debconf-communicate -fnoninteractive live-initramfs >/dev/null <<EOF
-REGISTER debian-installer/dummy $question
-SET $question $value
-FSET $question seen $seen
-EOF
+# Only do this once
+if [ -z "${DEBCONF_REDIR}" ]
+then
+ exec <&4
+ export DEBIAN_HAS_FRONTEND=1
+ export DEBCONF_REDIR=1
+fi
+
+root="${1}"
+. "$root/usr/share/debconf/confmodule"
+
+question="${2}"
+value="${3}"
+seen="${4}"
+
+[ "${seen}" ] || seen=true
+
+if ! db_set "${question}" "${value}"
+then
+ db_register debian-installer/dummy "${question}"
+ db_set "${question}" "${value}"