diff --git a/src/ngircd/resolve.c b/src/ngircd/resolve.c
index be41ec8..b5e6cb9 100644
--- a/src/ngircd/resolve.c
+++ b/src/ngircd/resolve.c
@@ -109,7 +109,7 @@ Resolve_Name( PROC_STAT *s, const char *Host, void (*cbfunc)(int, short))
 } /* Resolve_Name */
 
 
-#if !defined(HAVE_GETADDRINFO) || !defined(HAVE_GETNAMEINFO)
+#if !defined(HAVE_WORKING_GETADDRINFO) || !defined(HAVE_GETNAMEINFO)
 #if !defined(WANT_IPV6) && defined(h_errno)
 static char *
 Get_Error( int H_Error )
diff --git a/src/portab/portab.h b/src/portab/portab.h
index 78b6f7e..124ae4f 100644
--- a/src/portab/portab.h
+++ b/src/portab/portab.h
@@ -17,6 +17,11 @@
  * Portability functions and declarations (header)
  */
 
+#ifdef __SUNPRO_C
+# define _XOPEN_SOURCE
+# define _BSD_SOURCE
+#endif
+
 #include "config.h"
 
 #ifndef DEBUG
