diff --git a/src/acconfig.h b/src/acconfig.h
index 0891afc608ed4b251cc59cf621e728a3d4565d8a..0f41075c6e0fa1be533e80b912b9cc616f1a0b21 100644
--- a/src/acconfig.h
+++ b/src/acconfig.h
@@ -139,9 +139,13 @@
 #undef USE_FCNTL_O_NONBLOCK
 
 /* We want to use errno later */
-#if !defined(_UNIX_THREADS) && !defined(_MIT_POSIX_THREADS) && defined(HAVE_SPROC) && defined(HAVE_OSERROR) && !defined(errno)
+#ifdef _SGI_SPROC_THREADS
+/* Magic define of _SGI_MP_SOURCE above might redefine errno below */
+#include <errno.h>
+#if defined(HAVE_OSERROR) && !defined(errno)
 #define errno (oserror())
-#endif /* !_UNIX_THREADS && !_MIT_POSIX_THREADS && HAVE_SPROC && HAVE_OSERROR */
+#endif /* HAVE_OSERROR && !errno */
+#endif /* _SGI_SPROC_THREADS */
 
 #ifdef HAVE_FUNCTION_ATTRIBUTES
 #define ATTRIBUTE(X) __attribute__ (X)