Apply by doing:
       cd /usr/src
       patch -p0 < 007_sem.patch

And then rebuild your kernel.

Index: sys/kern/sysv_sem.c
===================================================================
RCS file: /cvs/src/sys/kern/sysv_sem.c,v
retrieving revision 1.32
retrieving revision 1.32.8.1
diff -u -p -r1.32 -r1.32.8.1
--- sys/kern/sysv_sem.c 15 Jul 2004 11:24:46 -0000      1.32
+++ sys/kern/sysv_sem.c 11 Aug 2006 04:08:45 -0000      1.32.8.1
@@ -423,25 +423,23 @@ sys_semget(struct proc *p, void *v, regi
       if (key != IPC_PRIVATE) {
               for (semid = 0, semaptr = NULL; semid < seminfo.semmni; semid++) {
                       if ((semaptr = sema[semid]) != NULL &&
-                           semaptr->sem_perm.key == key)
-                               break;
-               }
-               if (semaptr != NULL) {
-                       DPRINTF(("found public key\n"));
-                       if ((error = ipcperm(cred, &semaptr->sem_perm,
-                           semflg & 0700)))
-                               goto error;
-                       if (nsems > 0 && semaptr->sem_nsems < nsems) {
-                               DPRINTF(("too small\n"));
-                               error = EINVAL;
-                               goto error;
-                       }
-                       if ((semflg & IPC_CREAT) && (semflg & IPC_EXCL)) {
-                               DPRINTF(("not exclusive\n"));
-                               error = EEXIST;
-                               goto error;
+                           semaptr->sem_perm.key == key) {
+                               DPRINTF(("found public key\n"));
+                               if ((error = ipcperm(cred, &semaptr->sem_perm,
+                                   semflg & 0700)))
+                                       goto error;
+                               if (nsems > 0 && semaptr->sem_nsems < nsems) {
+                                       DPRINTF(("too small\n"));
+                                       error = EINVAL;
+                                       goto error;
+                               }
+                               if ((semflg & IPC_CREAT) && (semflg & IPC_EXCL)) {
+                                       DPRINTF(("not exclusive\n"));
+                                       error = EEXIST;
+                                       goto error;
+                               }
+                               goto found;
                       }
-                       goto found;
               }
       }