diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 855c6be0f4e71139036b035926f4ed0c77e7fae3..c351739622fbb25e034ca3e941ada75b34b41162 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2004-11-14  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* gcc_update (touch_files): Explicitly pass --no-print-directory.
+
 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
 
 	* gcc_update (boehm-gc/aclocal.m4): Remove boehm-gc/acinclude.m4.
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 55a7d6a9e8a23aae03795596873ea0f963724e3b..9b39ae2989f22c824aa28c074abb3cb3f2fd2c3c 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -128,7 +128,13 @@ touch_files () {
     echo '	echo Touching $@... 1>&2; \' >> Makefile.$$
     echo '	touch $@' >> Makefile.$$
     files_and_dependencies | sed 's,[^ ]* ,,;s,$, :,' >> Makefile.$$
-    while ${MAKE-make} -s -f Makefile.$$ all | grep . > /dev/null; do
+
+    # We need to explicitly shut off the "Entering... Leaving..."
+    # messages through "--no-print-directory" to handle the case when
+    # we were called from a recursive invocation (i.e. "$(MAKE)" in a
+    # Makefile, not just make).  Passing only "-s" doesn't help then,
+    # because make has helpfully added "-w" to MAKEFLAGS automatically.
+    while ${MAKE-make} -s --no-print-directory -f Makefile.$$ all | grep . > /dev/null; do
       sleep 1
     done 2>&1
     rm -f Makefile.$$