Index: /trunk/ccl/lisp-kernel/thread_manager.c
===================================================================
--- /trunk/ccl/lisp-kernel/thread_manager.c	(revision 870)
+++ /trunk/ccl/lisp-kernel/thread_manager.c	(revision 871)
@@ -184,5 +184,5 @@
 
       if ((seconds <= 0) && (nanos <= 0)) {
-	return 0;
+	return KERN_OPERATION_TIMED_OUT;
       }
 
@@ -792,4 +792,10 @@
   int suspend_count = atomic_incf(&(tcr->suspend_count));
   if (suspend_count == 1) {
+#ifdef DARWIN
+      if (mach_suspend_tcr(tcr)) {
+	tcr->flags |= TCR_FLAG_BIT_ALT_SUSPEND;
+	return true;
+      }
+#endif
     if (pthread_kill((pthread_t)ptr_from_lispobj(tcr->osid), thread_suspend_signal) == 0) {
       SEM_WAIT(tcr->suspend);
