diff --git a/contrib/rootfs/hold_packages b/contrib/rootfs/hold_packages
new file mode 100644
index 0000000000000000000000000000000000000000..53c3c1d70d3a55bc1947458677257ec2b5f8eb29
--- /dev/null
+++ b/contrib/rootfs/hold_packages
@@ -0,0 +1,5 @@
+#List of packages that must not be upgraded or deleted
+#during the remaster process.
+
+#required because of launchpad bug #1373033
+ubiquity
diff --git a/scripts/remaster_rootfs.sh b/scripts/remaster_rootfs.sh
index 05a359c8f22a07eed64bfb214333fe18f4b31484..07998a56ce3d58160673349d42fca519c0f5169b 100755
--- a/scripts/remaster_rootfs.sh
+++ b/scripts/remaster_rootfs.sh
@@ -70,17 +70,22 @@ function prepare_install()
 	apt-get update
 }
 
-function install_packages_from_file()
+function get_packages_from_file()
 {
 	FILENAME="$1"
-	APT_OPTIONS=$2
 
 	if [ ! -e "$FILENAME" ]; then
 		echo "Error: package file $FILENAME does not exist!"
 		exit 3
 	fi
 
-	PKGS=$(grep -v "^#" "$FILENAME" | tr '\n' ' ')
+	echo "$(grep -v "^#" "$FILENAME" | tr '\n' ' ')"
+}
+
+function install_packages_from_file()
+{
+	APT_OPTIONS=$2
+	PKGS=$(get_packages_from_file "$1")
 
 	aptitude install -y $APT_OPTIONS $PKGS
 }
@@ -131,18 +136,25 @@ function copy_modprobe_d()
 	update-initramfs -u
 }
 
-function prevent_ubiquity_update()
+function hold_packages()
 {
-	echo "ubiquity hold" | dpkg --set-selections
+	for PKG in $@; do
+		echo "$(echo "$PKG" | tr "[:blank:]") hold" | dpkg --set-selections
+	done
 }
-function allow_ubiquity_update()
+
+function unhold_packages()
 {
-	echo "ubiquity install" | dpkg --set-selections
+	for PKG in $@; do
+		echo "$(echo "$PKG" | tr -d "[:blank:]") install" | dpkg --set-selections
+	done
 }
 
 divert_initctl
 
-prevent_ubiquity_update #required because of launchpad bug #1373033
+PKGS_TO_HOLD=$(get_packages_from_file "$CONTRIB_DIR/hold_packages")
+
+hold_packages $PKGS_TO_HOLD
 
 prepare_install
 copy_modprobe_d
@@ -157,7 +169,7 @@ patch_all "$SCRIPT_DIR/patches/" "/"
 #echo "compiling glib2 schemas..."
 #glib-compile-schemas /usr/share/glib-2.0/schemas
 
-allow_ubiquity_update #required because of launchpad bug #1373033
+unhold_packages $PKGS_TO_HOLD
 
 revert_initctl
 finalize