diff --git a/diskimage_builder/elements/gentoo/bin/install-packages b/diskimage_builder/elements/gentoo/bin/install-packages
index a059bc78f..04c4cff8e 100755
--- a/diskimage_builder/elements/gentoo/bin/install-packages
+++ b/diskimage_builder/elements/gentoo/bin/install-packages
@@ -98,7 +98,7 @@ while true; do
             if [[ ! -f /usr/portage/profiles ]]; then
                 emerge-webrsync -q
             fi
-            install_gentoo_packages -uDNv --with-bdeps=y --jobs=2 @world
+            install_gentoo_packages -uDNv --with-bdeps=y --backtrack=99 --jobs=2 @world
             install_gentoo_packages --verbose=n --depclean
             install_gentoo_packages -v --usepkg=n @preserved-rebuild
             etc-update --automode -5
diff --git a/diskimage_builder/elements/gentoo/finalise.d/99-cleanup b/diskimage_builder/elements/gentoo/finalise.d/99-cleanup
index 98e101dc1..4de25ec06 100755
--- a/diskimage_builder/elements/gentoo/finalise.d/99-cleanup
+++ b/diskimage_builder/elements/gentoo/finalise.d/99-cleanup
@@ -6,9 +6,17 @@ fi
 set -eu
 set -o pipefail
 
-# make sure system is in a consistant state
+# make sure system is in a consistent state
+echo 'PYTHON_TARGETS="python3_4"' >> /etc/portage/make.conf
+eselect python set python3.4
+emerge -C -q dev-lang/python:2.7 dev-vcs/git
+USE="-build" emerge -q --backtrack=99 --jobs=2 --update --newuse --deep --with-bdeps=y @world
+# rebuild packages that might need it
+USE="-build" emerge -q --jobs=2 --usepkg=n @preserved-rebuild
+# remove unneeded packages
 USE="-build" emerge --verbose=n --depclean
-USE="-build" emerge -v --usepkg=n @preserved-rebuild
+# rebuild packages that might have somehow depended on the unneeded packages
+USE="-build" emerge -q --jobs=2 --usepkg=n @preserved-rebuild
 
 # update config files
 etc-update --automode -5