Index: /trunk/source/level-0/PPC/ppc-misc.lisp
===================================================================
--- /trunk/source/level-0/PPC/ppc-misc.lisp	(revision 8246)
+++ /trunk/source/level-0/PPC/ppc-misc.lisp	(revision 8247)
@@ -986,9 +986,13 @@
   (lrarx arg_z rzero imm0)
   (cmpri arg_z target::nil-value)
-  (be @lose)
-  (%cdr arg_z arg_y)
+  (beq @lose)
+  (%cdr arg_y arg_z)
   (strcx. arg_y rzero imm0)
+  (isync)
   (bne @again)
+  (blr)
   @lose
+  (li imm0 target::reservation-discharge)
+  (strcx. rzero rzero imm0)
   (blr))
   
