Index: /trunk/ccl/level-1/l1-lisp-threads.lisp
===================================================================
--- /trunk/ccl/level-1/l1-lisp-threads.lisp	(revision 663)
+++ /trunk/ccl/level-1/l1-lisp-threads.lisp	(revision 664)
@@ -473,6 +473,10 @@
     (%setf-macptr-to-object tcrp (lisp-thread.tcr thread))
     (unless (%null-ptr-p tcrp)
-      (#+linuxppc-target %get-unsigned-long #-linuxppc-target %get-ptr
-                         tcrp ppc32::tcr.osid))))
+      #+linuxppc-target
+      (let* ((pthread (%get-unsigned-long tcrp ppc32::tcr.osid)))
+	(unless (zerop pthread) pthread))
+      #-linuxppc-target
+      (let* ((pthread (%get-ptr tcrp ppc32::tcr.osid)))
+	(unless (%null-ptr-p pthread) pthread)))))
                          
 ;;; This returns something lower-level than the pthread, if that
