--- src/engine.c.orig  2014-08-28 12:50:56.086307943 +0000
+++ src/engine.c   2014-08-28 12:50:59.496333650 +0000
@@ -209,24 +209,24 @@ evaluateTriggers (Display* d)
   {
 #else /* VMS */
   if (lockerPid)
   {
-#if !defined (UTEKV) && !defined (SYSV) && !defined (SVR4)
+#if (!defined (UTEKV) && !defined (SYSV) && !defined (SVR4)) && defined (__GLIBC__)
     union wait  status;      /* childs process status */
-#else /* !UTEKV && !SYSV && !SVR4 */
+#else /* (!UTEKV && !SYSV && !SVR4) && __GLIBC__ */
     int         status = 0;  /* childs process status */
-#endif /* !UTEKV && !SYSV && !SVR4 */
+#endif /* (!UTEKV && !SYSV && !SVR4) && __GLIBC__ */

     if (unlockNow && !disabled)
     {
       (void) kill (lockerPid, SIGTERM);
     }

-#if !defined (UTEKV) && !defined (SYSV) && !defined (SVR4)
+#if (!defined (UTEKV) && !defined (SYSV) && !defined (SVR4)) && defined (__GLIBC__)
     if (wait3 (&status, WNOHANG, 0))
-#else /* !UTEKV && !SYSV && !SVR4 */
+#else /* (!UTEKV && !SYSV && !SVR4) && __GLIBC__ */
     if (waitpid (-1, &status, WNOHANG))
-#endif /* !UTEKV && !SYSV && !SVR4 */
+#endif /* (!UTEKV && !SYSV && !SVR4) && __GLIBC__ */
     {
      /*
       *  If the locker exited normally, we disable any pending kill
       *  trigger. Otherwise, we assume that it either has crashed or
