--- a/config/StdGNU.mk
+++ b/config/StdGNU.mk
@@ -30,16 +30,19 @@
 PREFIX ?= /usr
 BINDIR = $(PREFIX)/bin
 INCLUDEDIR = $(PREFIX)/include
-LIBEXEC = $(PREFIX)/lib/xen/bin
+LIBDIR = $(PREFIX)/lib
 SHAREDIR = $(PREFIX)/share
 MANDIR = $(SHAREDIR)/man
 MAN1DIR = $(MANDIR)/man1
 MAN8DIR = $(MANDIR)/man8
 SBINDIR = $(PREFIX)/sbin
-XENFIRMWAREDIR = $(PREFIX)/lib/xen/boot
 
-PRIVATE_PREFIX = $(LIBDIR)/xen
+PRIVATE_PREFIX = $(LIBDIR)/xen-$(XEN_VERSION)
 PRIVATE_BINDIR = $(PRIVATE_PREFIX)/bin
+PRIVATE_LIBDIR = $(PRIVATE_PREFIX)/lib
+
+LIBEXEC = $(PRIVATE_BINDIR)
+XENFIRMWAREDIR = $(PRIVATE_PREFIX)/boot
 
 CONFIG_DIR = /etc
 XEN_LOCK_DIR = /var/lock
--- a/Config.mk
+++ b/Config.mk
@@ -77,7 +77,7 @@
 endif
 
 PYTHON      ?= python
-PYTHON_PREFIX_ARG ?= --prefix="$(PREFIX)"
+PYTHON_PREFIX_ARG ?= --home="$(PRIVATE_PREFIX)"
 # The above requires that PREFIX contains *no spaces*. This variable is here
 # to permit the user to set PYTHON_PREFIX_ARG to '' to workaround this bug:
 #  https://bugs.launchpad.net/ubuntu/+bug/362570
