--- a/bin/quilt.in
+++ b/bin/quilt.in
@@ -15,14 +15,22 @@ unset POSIXLY_CORRECT
 unset GREP_OPTIONS
 
 export TEXTDOMAIN=quilt
-export TEXTDOMAINDIR=@LOCALEDIR@
 
-: ${QUILT_DIR=@QUILT_DIR@}
+if test -n "$STAGING_DIR_HOST"; then
+	export TEXTDOMAINDIR="$STAGING_DIR_HOST/share/locale"
+	: ${QUILT_DIR=$STAGING_DIR_HOST/share/quilt} ${QUILT_LIB=$STAGING_DIR_HOST/lib/quilt}
+	: ${QUILT_ETC=$STAGING_DIR_HOST/etc}
+else
+	export TEXTDOMAINDIR=@LOCALEDIR@
+	: ${QUILT_DIR=@QUILT_DIR@}
+	: ${QUILT_ETC=@ETCDIR@}
+fi
+
 export QUILT_DIR
 
 if [ -z "$QUILTRC" ]
 then
-	for QUILTRC in $HOME/.quiltrc @ETCDIR@/quilt.quiltrc; do
+	for QUILTRC in $HOME/.quiltrc $QUILT_ETC/quilt.quiltrc; do
 		[ -e $QUILTRC ] && break
 	done
 	export QUILTRC
--- a/quilt/scripts/edmail.in
+++ b/quilt/scripts/edmail.in
@@ -1,4 +1,6 @@
-#! @PERL@ -w
+#! @PERL@
+
+use warnings;
 
 # RFCs important for this script:
 #
@@ -29,7 +31,7 @@ BEGIN {
 }
 
 setlocale(LC_MESSAGES, "");
-bindtextdomain("quilt", "@LOCALEDIR@");
+bindtextdomain("quilt", $ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/locale' : "@LOCALEDIR@");
 textdomain("quilt");
 
 sub _($) {
--- a/quilt/scripts/patchfns.in
+++ b/quilt/scripts/patchfns.in
@@ -8,7 +8,11 @@
 #  See the COPYING and AUTHORS files for more details.
 
 export TEXTDOMAIN=quilt
-export TEXTDOMAINDIR=@LOCALEDIR@
+if [ -n "$STAGING_DIR_HOST" ]; then
+	export TEXTDOMAINDIR="$STAGING_DIR_HOST/share/locale"
+else
+	export TEXTDOMAINDIR=@LOCALEDIR@
+fi
 
 : ${LC_CTYPE:=$LANG}
 : ${LC_MESSAGES:=$LANG}
--- a/quilt/scripts/remove-trailing-ws.in
+++ b/quilt/scripts/remove-trailing-ws.in
@@ -1,4 +1,6 @@
-#! @PERL@ -w
+#! @PERL@
+
+use warnings;
 
 # Remove trailing whitespace from modified lines in working files.
 #
@@ -31,7 +33,7 @@ BEGIN {
 }
 
 setlocale(LC_MESSAGES, "");
-bindtextdomain("quilt", "@LOCALEDIR@");
+bindtextdomain("quilt", $ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/locale' : "@LOCALEDIR@");
 textdomain("quilt");
 
 sub _($) {
--- a/Makefile.in
+++ b/Makefile.in
@@ -21,8 +21,8 @@ COLUMN :=	@COLUMN@
 GETOPT :=	@GETOPT@
 CP :=		@CP@
 DATE :=		@DATE@
-PERL :=		@PERL@
-BASH :=		@BASH@
+PERL :=		/usr/bin/env perl
+BASH :=		/usr/bin/env bash
 SHELL:=		@BASH@ # It does not work if dash is used as a shell, for example
 GREP :=		@GREP@
 TAIL :=		@TAIL@
@@ -32,7 +32,7 @@ AWK :=		@AWK@
 FIND :=		@FIND@
 XARGS :=	@XARGS@
 DIFF :=		@DIFF@
-PATCH :=	@PATCH@
+PATCH :=	/usr/bin/env patch
 MKTEMP :=	@MKTEMP@
 MSGMERGE :=	@MSGMERGE@
 MSGFMT :=	@MSGFMT@
@@ -48,8 +48,8 @@ USE_NLS :=	@USE_NLS@
 STAT_HARDLINK := @STAT_HARDLINK@
 PATCH_WRAPPER := @PATCH_WRAPPER@
 
-COMPAT_SYMLINKS	:= @COMPAT_SYMLINKS@
-COMPAT_PROGRAMS	:= @COMPAT_PROGRAMS@
+COMPAT_SYMLINKS	:=
+COMPAT_PROGRAMS	:=
 
 default: all
 
--- a/quilt/scripts/backup-files.in
+++ b/quilt/scripts/backup-files.in
@@ -53,7 +53,12 @@ usage ()
 "
 }
 
-: ${QUILT_DIR=@QUILT_DIR@}
+if test -n "$STAGING_DIR_HOST"; then
+	: ${QUILT_DIR="$STAGING_DIR_HOST/share/quilt"}
+else
+	: ${QUILT_DIR=@QUILT_DIR@}
+fi
+
 . $QUILT_DIR/scripts/utilfns
 
 ensure_nolinks()
--- a/bin/guards.in
+++ b/bin/guards.in
@@ -1,4 +1,6 @@
-#!@PERL@ -w
+#!@PERL@
+
+use warnings;
 
 #  This script is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License version 2 as
--- a/compat/date.in
+++ b/compat/date.in
@@ -1,4 +1,6 @@
-#! @PERL@ -w
+#! @PERL@
+
+use warnings;
 
 #  This script is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License version 2 as
--- a/compat/getopt.in
+++ b/compat/getopt.in
@@ -1,4 +1,6 @@
-#! @PERL@ -w
+#! @PERL@
+
+use warnings;
 
 #  This script is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License version 2 as
--- a/quilt/scripts/dependency-graph.in
+++ b/quilt/scripts/dependency-graph.in
@@ -1,4 +1,6 @@
-#!@PERL@ -w
+#!@PERL@
+
+use warnings;
 
 #  This script is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License version 2 as