diff --git a/src/aclocal.m4 b/src/aclocal.m4
index cbc604ada3060275b54a09116da9377b7bb85652..68958d9ea688d06a0ab203335b95dce884b575c6 100644
--- a/src/aclocal.m4
+++ b/src/aclocal.m4
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.119 2006/06/17 19:31:17 mast Exp $
+dnl $Id: aclocal.m4,v 1.120 2006/06/17 19:58:50 mast Exp $
 
 dnl Some compatibility with Autoconf 2.50+. Not complete.
 dnl newer Autoconf calls substr m4_substr
@@ -388,7 +388,7 @@ define([PIKE_RETAIN_VARIABLES],
 
 define([AC_LOW_MODULE_INIT],
 [
-  # $Id: aclocal.m4,v 1.119 2006/06/17 19:31:17 mast Exp $
+  # $Id: aclocal.m4,v 1.120 2006/06/17 19:58:50 mast Exp $
 
   MY_AC_PROG_CC
 
@@ -506,22 +506,8 @@ pushdef([AC_OUTPUT],
   export prefix
   AC_SUBST(exec_prefix)
   export exec_prefix
-  AC_SUBST(CC)
-  export CC
-  AC_SUBST(CPP)
-  export CPP
   AC_SUBST(BINDIR)
   export BINDIR
-  AC_SUBST(BUILDDIR)
-  export BUILDDIR
-  AC_SUBST(PIKE_SRC_DIR)
-  export PIKE_SRC_DIR
-  AC_SUBST(BUILD_BASE)
-  export BUILD_BASE
-  AC_SUBST(INSTALL)
-  export INSTALL
-  AC_SUBST(AR)
-  export AR
   AC_SUBST(CFLAGS)
   export CFLAGS
   AC_SUBST(CPPFLAGS)
@@ -532,8 +518,6 @@ pushdef([AC_OUTPUT],
   export WARN
   AC_SUBST(CCSHARED)
   export CCSHARED
-  AC_SUBST(LDSHARED)
-  export LDSHARED
 
   PMOD_TARGETS=`echo $srcdir/*.cmod | sed -e "s/\.cmod/\.c/g" | sed -e "s|$srcdir/|\\$(SRCDIR)/|g"`
   test "$PMOD_TARGETS" = '$(SRCDIR)/*.c' && PMOD_TARGETS=
diff --git a/src/configure.in b/src/configure.in
index 1377b0357890721a4e57a7dd2ea6a07b230e4dcb..07d1eae9d6be731b3b6a9844393d7e01e4dd94d6 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -1,4 +1,4 @@
-AC_REVISION("$Id: configure.in,v 1.952 2006/06/17 10:41:27 mast Exp $")
+AC_REVISION("$Id: configure.in,v 1.953 2006/06/17 19:58:50 mast Exp $")
 AC_INIT(interpret.c)
 AC_CONFIG_HEADER(machine.h)
 
@@ -2225,7 +2225,7 @@ if test "x$PIKE_PATH_TRANSLATE" = "x"; then
     # MinGW system.
     cat <<\EOF
 #!/bin/sh
-# Automatically generated by $Id: configure.in,v 1.952 2006/06/17 10:41:27 mast Exp $.
+# Automatically generated by $Id: configure.in,v 1.953 2006/06/17 19:58:50 mast Exp $.
 # MinGW-version. Do NOT edit.
 posix_name="`cat`"
 posix_prefix="/"
@@ -2263,7 +2263,7 @@ EOF
     # Native POSIX system.
   cat <<\EOF
 #!/bin/sh
-# Automatically generated by $Id: configure.in,v 1.952 2006/06/17 10:41:27 mast Exp $.
+# Automatically generated by $Id: configure.in,v 1.953 2006/06/17 19:58:50 mast Exp $.
 # POSIX-version. Do NOT edit.
 cat
 EOF
@@ -2272,7 +2272,7 @@ else
   # rntcl-style
   cat <<\EOF
 #!/bin/sh
-# Automatically generated by $Id: configure.in,v 1.952 2006/06/17 10:41:27 mast Exp $.
+# Automatically generated by $Id: configure.in,v 1.953 2006/06/17 19:58:50 mast Exp $.
 # RNTCL-version. Do NOT edit.
 sed -e "$PIKE_PATH_TRANSLATE"
 EOF
@@ -7569,7 +7569,7 @@ echo
 
 export LDFLAGS CFLAGS CPPFLAGS LIBS
 export prefix exec_prefix OTHERFLAGS
-export TMP_BINDIR DEFINES INSTALL
+export DEFINES INSTALL
 export noopt_retry
 
 PIKE_SRC_DIR=$srcdir
@@ -7607,6 +7607,13 @@ AC_SUBST(dmmsrc)
 common_module_makefile=modules/common_module_makefile
 AC_SUBST_FILE(common_module_makefile)
 
+# Assignments for make_variables.in.
+
+# Afaik BUILDDIR/TMP_BUILDDIR and BINDIR/TMP_BINDIR are always the
+# same thing. Can it be cleaned up? /mast
+TMP_BUILDDIR=${BUILDDIR}
+TMP_BINDIR=${BINDIR}
+
 #
 # Note: We must output before visiting the subdirs,
 #       since we need *_module_makefile to exist.
diff --git a/src/make_variables.in b/src/make_variables.in
index 6fb49b62efcc9579bb41fc50a58a63ffba7292ee..67dcc35530995383e2e90b94be05c155393fd5cf 100644
--- a/src/make_variables.in
+++ b/src/make_variables.in
@@ -1,6 +1,6 @@
 # -*- Makefile -*-
 #
-# $Id: make_variables.in,v 1.18 2006/06/17 19:31:17 mast Exp $
+# $Id: make_variables.in,v 1.19 2006/06/17 19:58:50 mast Exp $
 #
 # Note: This template is actually used only for make_variables in the
 # subdirectories; the one created in the build base dir is just an
@@ -23,13 +23,11 @@
 @propagated_variables@
 #propagated_variables: CC CPP LDSHARED AR INSTALL
 #propagated_variables: OPTIMIZE WARN
-#propagated_variables: PIKE_SRC_DIR BUILD_BASE
+#propagated_variables: TMP_BUILDDIR TMP_BINDIR PIKE_SRC_DIR BUILD_BASE
 
 @SET_MAKE@
 prefix=@prefix@
 exec_prefix=$(prefix)/bin
-TMP_BUILDDIR=@BUILDDIR@
-TMP_BINDIR=@BINDIR@
 DEFINES=@CPPFLAGS@ @DEFS@
 TMP_LIBDIR=$(TMP_BUILDDIR)/lib
 
diff --git a/src/modules/Makefile.in b/src/modules/Makefile.in
index ea1e3b8aac80096a06aafbe5597ce003012323dc..e8b9659f20fb7dda26bd5d6f21a684f3f1dbb623 100644
--- a/src/modules/Makefile.in
+++ b/src/modules/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.52 2006/06/17 19:31:17 mast Exp $
+# $Id: Makefile.in,v 1.53 2006/06/17 19:58:50 mast Exp $
 
 @make_variables@
 
@@ -53,7 +53,7 @@ $(SRCDIR)/configure: $(SRCDIR)/configure.in $(PIKE_SRC_DIR)/aclocal.m4
 	cd $(SRCDIR) && $(PIKE_SRC_DIR)/run_autoconfig --no-recursion .
 
 config.status: $(SRCDIR)/configure propagated_variables
-	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" LDSHARED="$(REAL_LDSHARED)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" ./config.status --recheck
+	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" LDSHARED="$(REAL_LDSHARED)" ./config.status --recheck
 
 depend: Makefile
 	@for a in $(MODULES) ; do \
diff --git a/src/modules/common_module_makefile.in b/src/modules/common_module_makefile.in
index fad1786fb612eafbf239f5a67c9a9727ba1362f5..0c5e4ed7fd00d9262940db0a1cbdc223ed14a69b 100644
--- a/src/modules/common_module_makefile.in
+++ b/src/modules/common_module_makefile.in
@@ -1,5 +1,5 @@
 #
-# $Id: common_module_makefile.in,v 1.34 2006/06/17 19:31:17 mast Exp $
+# $Id: common_module_makefile.in,v 1.35 2006/06/17 19:58:50 mast Exp $
 #
 # Contains stuff common to both dynamic_module_makefile and
 # static_module_makefile.
@@ -105,7 +105,7 @@ $(SRCDIR)/configure: $(SRCDIR)/configure.in $(PIKE_SRC_DIR)/aclocal.m4
 propagated_variables:
 
 config.status: $(SRCDIR)/configure propagated_variables
-	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" LDSHARED="$(REAL_LDSHARED)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" ./config.status --recheck
+	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" LDSHARED="$(REAL_LDSHARED)" CPPFLAGS="$(REAL_CPPFLAGS)" ./config.status --recheck
 
 module.pmod: Makefile $(MODULE_PMOD_IN)
 	@if [ "x$(MODULE_PMOD_IN)" != "x" ]; then \
diff --git a/src/post_modules/Makefile.in b/src/post_modules/Makefile.in
index 6eec90af429502f728abe9b03fed97cec9017335..65f23746061c7a93821b1006f1d6232de40b4859 100644
--- a/src/post_modules/Makefile.in
+++ b/src/post_modules/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.17 2006/06/17 19:31:17 mast Exp $
+# $Id: Makefile.in,v 1.18 2006/06/17 19:58:50 mast Exp $
 
 @make_variables@
 
@@ -63,7 +63,7 @@ $(SRCDIR)/configure: $(SRCDIR)/configure.in $(PIKE_SRC_DIR)/aclocal.m4
 	cd $(SRCDIR) && $(PIKE_SRC_DIR)/run_autoconfig --no-recursion .
 
 config.status: $(SRCDIR)/configure propagated_variables
-	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" ./config.status --recheck
+	CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" CPPFLAGS="$(REAL_CPPFLAGS)" ./config.status --recheck
 
 depend: Makefile
 	@for a in $(MODULES) no ; do \