--- src/lib/omnithread/posix.cc.orig	Tue May  6 08:58:40 1997
+++ src/lib/omnithread/posix.cc	Sun Jun  7 14:30:50 1998
@@ -638,7 +638,7 @@
 
     if (detached) {
 
-#if (PthreadDraftVersion <= 6)
+#if (PthreadDraftVersion <= 6) || defined(__OpenBSD__) || defined(__NetBSD__)
 	rc = ERRNO(pthread_detach(&posix_thread));
 #else
 	rc = ERRNO(pthread_detach(posix_thread));
@@ -953,7 +953,7 @@
     rc = ERRNO(pthread_get_expiration_np(&rel, &abs));
 #else
     timespec abs;
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__)
     struct timeval tv;
     gettimeofday(&tv, NULL); 
     abs.tv_sec = tv.tv_sec;
@@ -1001,7 +1001,7 @@
 
 int omni_thread::cancel(void)
 {
-#ifdef __linux__
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
     cerr << "omni_thread::cancel: no pthread_cancel on this platform\n";
     return ENOSYS;
 #else
