diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index b1801026d58a948b8b4c30d9d915a2e41c709184..61bc00e85214dc99bbde4fdfa39d4a50392725b1 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-04  Alan Modra  <amodra@bigpond.net.au>
+
+	* include/private/gc_locks.h (GC_test_and_set <POWERPC>): Don't
+	use broken 64-bit version.
+
 2006-01-25  Andreas Tobler  <a.tobler@schweiz.ch>
 
 	* darwin_stop_world.c: Change inline asm instruction to ld as ldz
diff --git a/boehm-gc/include/private/gc_locks.h b/boehm-gc/include/private/gc_locks.h
index 1faf2d3d2091fdff2f3e48d82509ac16ef6e3791..4e2b641b78bccc4b0e858cbae1b9608898cbfd6d 100644
--- a/boehm-gc/include/private/gc_locks.h
+++ b/boehm-gc/include/private/gc_locks.h
@@ -139,7 +139,7 @@
 #      define GC_TEST_AND_SET_DEFINED
 #    endif
 #    if defined(POWERPC)
-#     if CPP_WORDSZ == 64
+#     if 0 /* CPP_WORDSZ == 64  totally broken to use int locks with ldarx */
         inline static int GC_test_and_set(volatile unsigned int *addr) {
           unsigned long oldval;
           unsigned long temp = 1; /* locked value */