diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index c351739622fbb25e034ca3e941ada75b34b41162..da4eae5166f199a70ad774e62d02aa4958dc91c3 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-20  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* gcc_update (touch_files): Don't rely on "make" being GNU make;
+	grep for "Touching" to determine that the rule executes.
+
 2004-11-14  Hans-Peter Nilsson  <hp@bitrange.com>
 
 	* gcc_update (touch_files): Explicitly pass --no-print-directory.
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 9b39ae2989f22c824aa28c074abb3cb3f2fd2c3c..7e0e837e1af37df721769c59719168a59ecddb2a 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -129,12 +129,15 @@ touch_files () {
     echo '	touch $@' >> Makefile.$$
     files_and_dependencies | sed 's,[^ ]* ,,;s,$, :,' >> Makefile.$$
 
-    # We need to explicitly shut off the "Entering... Leaving..."
+    # We would have 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
+    # Unfortunately we do not require GNU make other than for building
+    # and testing, so let's just grep known text explicitly echoed by
+    # the rule.
+    while ${MAKE-make} -s -f Makefile.$$ all | grep Touching > /dev/null; do
       sleep 1
     done 2>&1
     rm -f Makefile.$$