# include <ldap_pvt_thread.h>
   ldap_pvt_thread_mutex_t ldap_int_resolv_mutex;
 
-#if (defined( HAVE_CTIME_R ) || defined( HAVE_REENTRANT_FUNCTIONS)) \
-       && defined( CTIME_R_NARGS )
-# define USE_CTIME_R
+# if (defined( HAVE_CTIME_R ) || defined( HAVE_REENTRANT_FUNCTIONS)) \
+        && defined( CTIME_R_NARGS )
+#   define USE_CTIME_R
 # else
        static ldap_pvt_thread_mutex_t ldap_int_ctime_mutex;
 # endif
 #define BUFSTART (1024-32)
 #define BUFMAX (32*1024-32)
 
+#if defined(LDAP_R_COMPILE)
 static char *safe_realloc( char **buf, int len );
 
-#if !defined(HAVE_GETHOSTBYNAME_R) && defined(LDAP_R_COMPILE)
+#if !(defined(HAVE_GETHOSTBYNAME_R) && defined(HAVE_GETHOSTBYADDR_R))
 static int copy_hostent( struct hostent *res,
        char **buf, struct hostent * src );
 #endif
+#endif
 
 int ldap_pvt_gethostbyname_a(
        const char *name,