diff -ur gnustep-base-1.11.2.old/Source/GNUmakefile gnustep-base-1.11.2/Source/GNUmakefile
--- gnustep-base-1.11.2.old/Source/GNUmakefile	Wed Nov 16 06:44:42 2005
+++ gnustep-base-1.11.2/Source/GNUmakefile	Mon Mar  6 00:31:37 2006
@@ -83,6 +83,11 @@
 preface.m \
 mframe.m
 
+ifeq ($(findstring openbsd, $(GNUSTEP_TARGET_OS)), openbsd)
+GNU_MFILES += thr-pthread.m
+OBJC_LIBS += -lpthread
+endif
+
 ifneq ($(OBJC_RUNTIME_LIB), gnu)
 GNU_MFILES += objc-gnu2next.m
 ifeq ($(HAVE_PTHREAD_H), yes)
diff -ur gnustep-base-1.11.2.old/Source/thr-mach.h gnustep-base-1.11.2/Source/thr-mach.h
--- gnustep-base-1.11.2.old/Source/thr-mach.h	Sat May 21 23:32:14 2005
+++ gnustep-base-1.11.2/Source/thr-mach.h	Mon Mar  6 00:15:18 2006
@@ -39,6 +39,7 @@
 #define __thread_INCLUDE_GNU
 
 #include <objc/objc.h>
+#include <objc/objc-api.h>
 
 /*************************************************************************
  *  Universal static variables:
diff -ur gnustep-base-1.11.2.old/Source/thr-pthread.m gnustep-base-1.11.2/Source/thr-pthread.m
--- gnustep-base-1.11.2.old/Source/thr-pthread.m	Sat May 21 23:32:14 2005
+++ gnustep-base-1.11.2/Source/thr-pthread.m	Mon Mar  6 00:23:34 2006
@@ -238,9 +238,9 @@
 void
 objc_thread_yield(void)
 {
-#if 0
+#ifndef __APPLE__
   /* Not defined in darwin? */
-  pthread_yield(NULL);
+  pthread_yield();
 #else
   sched_yield();
 #endif
