diff --git a/lisp/Config.ppc_darwin b/lisp/Config.ppc_darwin
index cba98dcdf7ee468dfc696d4a21029ba99266d421..ea1b576a459ca94468510f445a3c86ce6ebc93a3 100644
--- a/lisp/Config.ppc_darwin
+++ b/lisp/Config.ppc_darwin
@@ -3,7 +3,12 @@ vpath %.h $(PATH1)
 vpath %.c $(PATH1)
 vpath %.S $(PATH1)
 CPPFLAGS = -I. -I$(PATH1) -I/usr/X11R6/include
-CC = gcc3
+# For Mac OS X 10.2, gcc3 is appropriate.  For 10.4, gcc (gcc 4.0) is ok.  But
+# this means -traditional is needed because gcc 4 seems to handle '##'
+# differently from gcc-3.3.  I (rtoy) don't know which is right, but I
+# think gcc 4 is wrong.  However, to work around this, we use /**/ to 
+# concatenate tokens which reguires the -traditional flag.
+CC = gcc
 LD = ld
 NM = $(PATH1)/darwin-nm
 CPP = cpp -no-cpp-precomp
@@ -13,7 +18,7 @@ LINKAGE = -DLINKAGE_TABLE
 endif
 
 CFLAGS = -g -O3 -no-cpp-precomp -DDARWIN -Dppc $(LINKAGE)
-ASFLAGS = -g -O3 -no-cpp-precomp -DDARWIN -Dppc $(LINKAGE)
+ASFLAGS = -traditional -g -O3 -no-cpp-precomp -DDARWIN -Dppc $(LINKAGE)
 
 UNDEFSYMPATTERN = -Xlinker -u -Xlinker &
 ASSEM_SRC = ppc-assem.S linux-stubs.S