diff --git a/Makefile b/Makefile
index 6decf6f090172c9e5af926df891d33b87b542077..e4dc491c32f88927834d2785c739e428e0a8ae31 100644
--- a/Makefile
+++ b/Makefile
@@ -36,13 +36,9 @@ endif
 
 #some tools and targets need alternative architecture names,
 #so lets infer them
-ALTARCH=$(ARCH)
-ifeq ($(ARCH),x86_64)
-  ALTARCH=amd64
-endif
-ifeq ($(ARCH),i686)
-  ALTARCH=i386
-endif
+define altarch =
+$(if $(subst x86_64,,$1),$(if $(subst i686,,$1),$1,i386),amd64)
+endef
 
 RSYNC=rsync -a
 
@@ -62,10 +58,13 @@ endef
 
 ISO_IMAGE_DEST=/iso
 ISO_IMAGE=$(ISO_IMAGE_DEST)/image.iso
-ISO_NAME=$(ISO_FLAVOR)-$(ISO_VERSION)-desktop-$(ALTARCH).iso
 ISO_URL=$(ISO_BASE_URL)/$(ISO_RELEASE)/release
 ISO_CONTENT=$(ISO_IMAGE_DEST)/content
 
+define getisoname =
+$(ISO_FLAVOR)-$(ISO_VERSION)-desktop-$(call altarch,$1).iso
+endef
+
 CASPER_SOURCE_DIR=$(ISO_CONTENT)/casper
 INITRD_SOURCE=$(CASPER_SOURCE_DIR)/initrd.lz
 SQUASHFS_SOURCE=$(CASPER_SOURCE_DIR)/filesystem.squashfs
@@ -96,12 +95,12 @@ $(call gentargets,$(STATE_DIR)) : | $(WORKSPACE)/%
 iso_download : $(ARCH_DIR)$(ISO_IMAGE)
 $(call gentargets,$(ISO_IMAGE)) : | $(call archdir,%)
 	mkdir -p "$(call archdir,$*)$(ISO_IMAGE_DEST)"
-	wget -O "$(call archdir,$*)$(ISO_IMAGE_DEST)/$(ISO_NAME)" -c "$(ISO_URL)/$(ISO_NAME)"
+	wget -O "$(call archdir,$*)$(ISO_IMAGE_DEST)/$(call getisoname,$*)" -c "$(ISO_URL)/$(call getisoname,$*)"
 	wget -O "$(call archdir,$*)$(ISO_IMAGE_DEST)/SHA256SUMS.temp" -c "$(ISO_URL)/SHA256SUMS"
-	grep "$(ISO_NAME)" "$(call archdir,$*)$(ISO_IMAGE_DEST)/SHA256SUMS.temp" > "$(call archdir,$*)$(ISO_IMAGE_DEST)/SHA256SUMS"
+	grep "$(call getisoname,$*)" "$(call archdir,$*)$(ISO_IMAGE_DEST)/SHA256SUMS.temp" > "$(call archdir,$*)$(ISO_IMAGE_DEST)/SHA256SUMS"
 	$(RM) "$(call archdir,$*)$(ISO_IMAGE_DEST)/SHA256SUMS.temp"
 	cd "$(call archdir,$*)$(ISO_IMAGE_DEST)" && sha256sum -c SHA256SUMS
-	mv "$(call archdir,$*)$(ISO_IMAGE_DEST)/$(ISO_NAME)" "$(call archdir,$*)$(ISO_IMAGE)"
+	mv "$(call archdir,$*)$(ISO_IMAGE_DEST)/$(call getisoname,$*)" "$(call archdir,$*)$(ISO_IMAGE)"
 
 iso_content : $(ARCH_DIR)$(STATE_DIR)/iso_extracted
 $(call gentargets,$(STATE_DIR)/iso_extracted) : $(call archdir,%)$(ISO_IMAGE) | $(call archdir,%)$(STATE_DIR)
@@ -114,6 +113,10 @@ iso_clean:
 	$(RM) -r "$(ARCH_DIR)$(ISO_IMAGE_DEST)"
 	$(RM) "$(ARCH_DIR)$(STATE_DIR)/iso_extracted"
 
+iso_clean_both:
+	$(MAKE) ARCH=$(PRIMARY_ARCH) iso_clean
+	$(MAKE) ARCH=$(SECONDARY_ARCH) iso_clean
+
 apt_cache $(APT_CACHE_DIR): |$(WORKSPACE)
 	mkdir -p "$(APT_CACHE_DIR)"
 
@@ -133,12 +136,12 @@ $(call gentargets,$(STATE_DIR)/rootfs_prepared) : $(call archdir,%)$(STATE_DIR)/
 	test ! -e "$(call archdir,$*)$(ROOTFS)/remaster/"
 	if [ -e "$(call archdir,$*)$(ROOTFS)/etc/resolv.conf" ]; \
 	then \
-		cp "$(call archdir,$*)$(ROOTFS)/etc/resolv.conf" "$(call archdir,$*)$(ROOTFS)/etc/resolv.conf.bak"; \
+		cp -a --remove-destination "$(call archdir,$*)$(ROOTFS)/etc/resolv.conf" "$(call archdir,$*)$(ROOTFS)/etc/resolv.conf.bak"; \
 	fi
 	echo "#!/bin/bash" > "$(call archdir,$*)$(ROOTFS)/usr/sbin/init.lxc"
 	echo "shift; exec \$$@" >> "$(call archdir,$*)$(ROOTFS)/usr/sbin/init.lxc"
 	chmod +x "$(call archdir,$*)$(ROOTFS)/usr/sbin/init.lxc"
-	cp /etc/resolv.conf "$(call archdir,$*)$(ROOTFS)/etc/resolv.conf"
+	cp -a --remove-destination /etc/resolv.conf "$(call archdir,$*)$(ROOTFS)/etc/resolv.conf"
 	mkdir -p "$(call archdir,$*)$(ROOTFS)/remaster"
 	cp -Lr "$(CURDIR)"/config/copy_to_rootfs_remaster_dir/* "$(call archdir,$*)$(ROOTFS)/remaster"
 	echo "#!/bin/bash" > "$(call archdir,$*)$(ROOTFS)/remaster/remaster.gen.sh"
@@ -175,6 +178,10 @@ rootfs_clean:
 	$(RM) "$(ARCH_DIR)/filesystem.size"
 	$(RM) -r $(ARCH_DIR)$(LXC_DIR)
 
+rootfs_clean_both:
+	$(MAKE) ARCH=$(PRIMARY_ARCH) rootfs_clean
+	$(MAKE) ARCH=$(SECONDARY_ARCH) rootfs_clean
+
 rootfs_checksums : $(ARCH_DIR)$(CHECKSUMS)
 $(call gentargets,$(CHECKSUMS)) : $(call archdir,%)$(STATE_DIR)/rootfs_finalized
 	cd "$(call archdir,$*)$(ROOTFS)" && find . -type f -print0 | sort -z | xargs -0 md5sum > "$(call archdir,$*)$(CHECKSUMS)"
@@ -209,6 +216,10 @@ rootfs_squash: $(COMMON_DIR)/lip-$(PRIMARY_ARCH).squashfs $(COMMON_DIR)/lip-$(SE
 rootfs_common_clean:
 	$(RM) -r "$(COMMON_DIR)"
 
+rootfs_common_clean_both:
+	$(MAKE) ARCH=$(PRIMARY_ARCH) rootfs_common_clean
+	$(MAKE) ARCH=$(SECONDARY_ARCH) rootfs_common_clean
+
 initrd_unpack : $(ARCH_DIR)$(STATE_DIR)/initrd_extracted
 $(call gentargets,$(STATE_DIR)/initrd_extracted) : $(call archdir,%)$(STATE_DIR)/iso_extracted
 	mkdir -p "$(call archdir,$*)$(INITRD)"
@@ -221,6 +232,10 @@ initrd_clean:
 	$(RM) "$(ARCH_DIR)$(STATE_DIR)/initrd_extracted"
 	$(RM) "$(ARCH_DIR)$(STATE_DIR)/initrd_remastered"
 
+initrd_clean_both:
+	$(MAKE) ARCH=$(PRIMARY_ARCH) initrd_clean
+	$(MAKE) ARCH=$(SECONDARY_ARCH) initrd_clean
+
 initrd_remaster : $(ARCH_DIR)$(STATE_DIR)/initrd_remastered
 $(call gentargets,$(STATE_DIR)/initrd_remastered) : $(call archdir,%)$(STATE_DIR)/initrd_extracted $(call archdir,%)$(STATE_DIR)/rootfs_finalized
 	$(CURDIR)/scripts/remaster_initrd.sh "$(CURDIR)" "$(call archdir,$*)$(INITRD)" "$(call archdir,$*)$(ROOTFS)"
@@ -230,6 +245,8 @@ initrd_pack : $(ARCH_DIR)$(INITRD_TARGET)
 $(call gentargets,$(INITRD_TARGET)) : $(call archdir,%)$(STATE_DIR)/initrd_remastered
 	cd "$(call archdir,$*)$(INITRD)" && find | cpio -H newc -o | lzma -z > "$(call archdir,$*)$(INITRD_TARGET)"
 
+clean_really_all: iso_clean_both rootfs_clean_both rootfs_common_clean_both initrd_clean_both
+
 image_git $(IMAGE_DIR)/.git: |$(WORKSPACE)
 	test ! -e "$(IMAGE_DIR)/.git"
 	mkdir -p "$(IMAGE_DIR)"
@@ -293,7 +310,7 @@ config_clean:
 	$(RM) $(CONFIG_FILE)
 
 help:
-	@echo "Defaul Architecture: $(ARCH) ($(ALTARCH))"
+	@echo "Defaul Architecture: $(ARCH) ($(call altarch,$(ARCH)))"
 	@echo "Workspace: $(WORKSPACE)"
 	@echo "You may specify the Architecture by setting ARCH="
 	@echo
@@ -305,17 +322,17 @@ help:
 	@echo "   If you have mounted an image/partition (e.g. an empty image created in 1.) set IMAGE_DIR to the mount point,"
 	@echo "   (e.g. \"# make IMAGE_DIR=/your/mountpoint image\") to update it."
 	@echo
-	@echo "There is a list of all available phony targets is available under \"make listall\""
+	@echo "There is a list of all phony targets available under \"make listall\""
 
 listall:
 	@echo "Available targets: "
 	@echo -e "$(foreach t,$(COMMON_PHONY) $(ISO_PHONY) $(ROOTFS_PHONY) $(INITRD_PHONY) $(APT_CACHE_PHONY) $(IMAGE_PHONY),\n-$t)"
 
-ISO_PHONY=iso_download iso_content iso_clean
-ROOTFS_PHONY=rootfs_unsquash rootfs_prepare rootfs_remaster rootfs_finalize rootfs_checksums rootfs_deduplicate rootfs_squash rootfs_clean rootfs_common_clean
-INITRD_PHONY=initrd_unpack initrd_remaster initrd_pack initrd_clean
+ISO_PHONY=iso_download iso_content iso_clean iso_clean_both
+ROOTFS_PHONY=rootfs_unsquash rootfs_prepare rootfs_remaster rootfs_finalize rootfs_checksums rootfs_deduplicate rootfs_squash rootfs_clean rootfs_common_clean rootfs_clean_both rootfs_common_clean_both
+INITRD_PHONY=initrd_unpack initrd_remaster initrd_pack initrd_clean initrd_clean_both
 APT_CACHE_PHONY=apt_cache apt_cache_clean
 IMAGE_PHONY=image image_content image_skel_file image_remaster image_git image_git_pull image_binary_files
-COMMON_PHONY=help workspace config config_clean
+COMMON_PHONY=help workspace config config_clean clean_really_all
 
 .PHONY : default $(COMMON_PHONY) $(ISO_PHONY) $(ROOTFS_PHONY) $(INITRD_PHONY) $(APT_CACHE_PHONY) $(IMAGE_PHONY)
diff --git a/contrib/rootfs/lip_sources.list b/contrib/rootfs/lip_sources.list
index f0192bd7f9e29eb51e773bbed700bb880153bd82..1356dda2ad8af7635d09ed26520862743a14c4e7 100644
--- a/contrib/rootfs/lip_sources.list
+++ b/contrib/rootfs/lip_sources.list
@@ -1,3 +1,6 @@
-deb http://ftp.halifax.rwth-aachen.de/ubuntu/ trusty main restricted universe
-deb http://security.ubuntu.com/ubuntu/ trusty-security main restricted universe
-deb http://ftp.halifax.rwth-aachen.de/ubuntu/ trusty-updates main restricted universe
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ trusty main restricted universe multiverse
+deb http://security.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
+deb http://ftp.halifax.rwth-aachen.de/ubuntu/ trusty-updates main restricted universe multiverse
+
+#deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
+#deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
diff --git a/scripts/remaster_initrd.sh b/scripts/remaster_initrd.sh
index 037fb6421859be00a9f859ac10ada2753b5040f8..dab1b77a5696666395c2fced07cc3580a96902a8 100755
--- a/scripts/remaster_initrd.sh
+++ b/scripts/remaster_initrd.sh
@@ -70,7 +70,7 @@ function install_liphook()
 
 function replace_modules()
 {
-	local version=$(basename $(readlink -f "/mnt/data/lipck-work/x86_64/rootfs/vmlinuz") | cut -d'-' -f2-)
+	local version=$(basename $(readlink -f "$ROOTFS/vmlinuz") | cut -d'-' -f2-)
 	rm -rf "$IRD/lib/modules/*"
 	cp -a "$ROOTFS/lib/modules/$version" "$IRD/lib/modules"
 }
diff --git a/scripts/remaster_rootfs.sh b/scripts/remaster_rootfs.sh
index fe5aaff69b5588d23bb0aeb2fc3f57f5f9f5e3a4..183f6ac58af37de3f1599a5c76b18769f813ce20 100755
--- a/scripts/remaster_rootfs.sh
+++ b/scripts/remaster_rootfs.sh
@@ -157,8 +157,19 @@ function copy_modprobe_d()
 	update-initramfs -u
 }
 
+function prevent_ubiquity_update()
+{
+	echo "ubiquity hold" | dpkg --set-selections
+}
+function allow_ubiquity_update()
+{
+	echo "ubiquity install" | dpkg --set-selections
+}
+
 divert_initctl
 
+prevent_ubiquity_update #required because of launchpad bug #1373033
+
 prepare_install
 copy_modprobe_d
 install_packages
@@ -172,5 +183,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
+
 revert_initctl
 finalize