Index: mutex/mut_fcntl.c
--- mutex/mut_fcntl.c.orig	2007-05-17 17:15:45 +0200
+++ mutex/mut_fcntl.c	2007-10-11 10:47:14 +0200
@@ -79,7 +79,7 @@
 
 		/* Acquire an exclusive kernel lock. */
 		k_lock.l_type = F_WRLCK;
-		if (fcntl(dbenv->lockfhp->fd, F_SETLKW, &k_lock))
+		if (fcntl(dbenv->lockfhp->fd, F_SETLKW, &k_lock) == -1)
 			goto err;
 
 		/* If the resource is still available, it's ours. */
@@ -93,7 +93,7 @@
 
 		/* Release the kernel lock. */
 		k_lock.l_type = F_UNLCK;
-		if (fcntl(dbenv->lockfhp->fd, F_SETLK, &k_lock))
+		if (fcntl(dbenv->lockfhp->fd, F_SETLK, &k_lock) == -1)
 			goto err;
 
 		/*
Index: os/os_open.c
--- os/os_open.c.orig	2007-05-17 17:15:46 +0200
+++ os/os_open.c	2007-10-11 10:47:14 +0200
@@ -65,7 +65,7 @@
 	if (LF_ISSET(DB_OSO_EXCL))
 		oflags |= O_EXCL;
 
-#ifdef HAVE_O_DIRECT
+#if defined(HAVE_O_DIRECT) && defined(__FreeBSD__)
 	if (LF_ISSET(DB_OSO_DIRECT))
 		oflags |= O_DIRECT;
 #endif
