diff --git a/patches/initrd/unionstackmount1310.patch b/patches/initrd/unionstackmount1310.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b9a4cc8784d6a417bfa79dcf95c7096c1d547057
--- /dev/null
+++ b/patches/initrd/unionstackmount1310.patch
@@ -0,0 +1,90 @@
+--- a/scripts/casper	2014-03-13 20:35:34.293226677 +0100
++++ b/scripts/casper	2014-03-13 20:28:39.978460056 +0100
+@@ -43,6 +43,8 @@
+                 export PERSISTENT_PATH="${x#persistent-path=}" ;;
+             union=*)
+                 export UNIONFS="${x#union=}";;
++            unionstack=*)
++                export UNIONSTACK="${x#unionstack=}";;
+             ip=*)
+                 STATICIP=${x#ip=}
+                 if [ "${STATICIP}" = "" ]; then
+@@ -426,6 +428,13 @@
+                 continue
+             fi
+ 
++            if [ -n "$UNIONSTACK" ]; then
++                if [ "$(echo $UNIONSTACK | sed "s/$imagename//";)" == "$UNIONSTACK" ]; then
++                    log_warning_msg "Filesystem image $imagename not in UNIONSTACK. Ignored."
++                    continue
++                fi
++            fi
++
+             if [ -d "${image}" ]; then
+                 # it is a plain directory: do nothing
+                 rofsstring="${image}=${roopt}:${rofsstring}"
+@@ -461,6 +470,10 @@
+     fi
+ 
+     mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || panic "Can not mount $cowdevice on /cow"
++    
++    overlay_mount_dir=/overlay
++    mkdir -p "$overlay_mount_dir"
++    
+ 
+     case ${UNIONFS} in
+         unionfs-fuse)
+@@ -475,7 +488,9 @@
+             # Mount the layers pairwise from the bottom onto rootmnt,
+             # for the second and later layers rootmnt forms the lower layer.
+             mounts=""
+-            for mount in /cow $rofslist
++
++	    #overlay all readonly file systems first
++            for mount in $rofslist
+             do
+                 mounts="$mount $mounts"
+             done
+@@ -487,9 +502,13 @@
+                     continue
+                 fi
+                 mount -t overlayfs -o "upperdir=$mount,lowerdir=$lower" \
+-                    "$mount" "$rootmnt"
+-                lower="$rootmnt"
++                    "$mount" "$overlay_mount_dir"
++                lower="$overlay_mount_dir"
+             done
++            
++            mount -t overlayfs -o "upperdir=/cow,lowerdir=$lower" \
++                    "$mount" "$rootmnt"
++
+             ;;
+     esac
+ 
+@@ -530,15 +549,17 @@
+     fi
+ 
+     # move the first mount; no head in busybox-initramfs
+-    for d in $(mount -t squashfs | cut -d\  -f 3); do
+-        mkdir -p "${rootmnt}/rofs"
+-        if [ "${UNIONFS}" = unionfs-fuse ]; then
+-            mount -o bind "${d}" "${rootmnt}/rofs"
+-        else
+-            mount -o move "${d}" "${rootmnt}/rofs"
+-        fi
+-        break
+-    done
++    #for d in $(mount -t squashfs | cut -d\  -f 3); do
++    #    mkdir -p "${rootmnt}/rofs"
++    #    if [ "${UNIONFS}" = unionfs-fuse ]; then
++    #        mount -o bind "${d}" "${rootmnt}/rofs"
++    #    else
++    #        mount -o move "${d}" "${rootmnt}/rofs"
++    #    fi
++    #    break
++    #done
++    mkdir -p "${rootmnt}/rofs"
++    mount -o move "$lower" "${rootmnt}/rofs"
+ }
+ 
+ check_dev ()
diff --git a/patches/iso/ubiquity-keep-installed.patch b/patches/iso/ubiquity-keep-installed.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e5b4cad65bcf1d260e612ade6c1843046341ee5e
--- /dev/null
+++ b/patches/iso/ubiquity-keep-installed.patch
@@ -0,0 +1,8 @@
+--- a/preseed/kubuntu.seed	2013-10-16 22:13:07.000000000 +0200
++++ b/preseed/kubuntu.seed	2014-03-13 20:02:16.991868107 +0100
+@@ -10,4 +10,4 @@
+ # application packages pulled in by language packs. Given that we clearly
+ # have the space to include them on the DVD, they're useful and we might as
+ # well keep them installed.
+-ubiquity	ubiquity/keep-installed	string icedtea6-plugin openoffice.org
++ubiquity	ubiquity/keep-installed	string icedtea6-plugin openoffice.org gparted kpartx kpartx-boot libgtkmm apt-clone cryptsetup dpkg-repack gir1.2-json-1.0 gir1.2-xkl-1.0 gir1.2-timezonemap-1.0 keyutils libnss3-1d python-pyicu realpath
diff --git a/patches/rootfs/ubiquity-apt-clone-fix.patch b/patches/rootfs/ubiquity-apt-clone-fix.patch
new file mode 100644
index 0000000000000000000000000000000000000000..94c0ff23562b679913335764a1ea6ffcc53b98ab
--- /dev/null
+++ b/patches/rootfs/ubiquity-apt-clone-fix.patch
@@ -0,0 +1,12 @@
+--- a/lib/partman/finish.d/01apt_clone_save	2013-01-12 03:31:22.000000000 +0000
++++ b/lib/partman/finish.d/01apt_clone_save	2013-04-06 16:23:16.103678237 +0000
+@@ -39,6 +39,9 @@
+ 	close_dialog
+ done
+ 
++#lip patch to prevent the apt-clone save call
++root=""
++
+ if [ -z "$root" ]; then
+ 	# The partition is going to be formatted; there's nothing to preserve.
+ 	exit 0