diff --git a/configure.ac b/configure.ac
index e5c7311..833e4f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -552,6 +552,10 @@ then
              LDAPLIBS="-lldap_r -llber"],,
              [$LIBPTHREAD])],,
              [$LIBPTHREAD])
+    AC_CHECK_LIB(ldap_r, ldap_count_references,
+        [AC_DEFINE(HAVE_LDAP_COUNT_REFERENCES, 1,
+            [Define if libldap_r has the ldap_count_references function])],,
+            [$LIBPTHREAD])
 fi
 
 dnl **** Check for FreeType 2 ****
diff --git a/dlls/wldap32/misc.c b/dlls/wldap32/misc.c
index 1f85cb6..d638cba 100644
--- a/dlls/wldap32/misc.c
+++ b/dlls/wldap32/misc.c
@@ -115,7 +115,7 @@ ULONG WLDAP32_ldap_count_entries( WLDAP3
 ULONG WLDAP32_ldap_count_references( WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *res )
 {
     ULONG ret = LDAP_NOT_SUPPORTED;
-#ifdef HAVE_LDAP
+#if defined(HAVE_LDAP) && defined(HAVE_LDAP_COUNT_REFERENCES)
 
     TRACE( "(%p, %p)\n", ld, res );
 
@@ -250,7 +250,7 @@ WLDAP32_LDAPMessage *WLDAP32_ldap_first_
 
 WLDAP32_LDAPMessage *WLDAP32_ldap_first_reference( WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *res )
 {
-#ifdef HAVE_LDAP
+#if defined(HAVE_LDAP) && defined(HAVE_LDAP_COUNT_REFERENCES)
 
     TRACE( "(%p, %p)\n", ld, res );
 
@@ -367,7 +367,7 @@ WLDAP32_LDAPMessage *WLDAP32_ldap_next_e
 
 WLDAP32_LDAPMessage *WLDAP32_ldap_next_reference( WLDAP32_LDAP *ld, WLDAP32_LDAPMessage *entry )
 {
-#ifdef HAVE_LDAP
+#if defined(HAVE_LDAP) && defined(HAVE_LDAP_COUNT_REFERENCES)
 
     TRACE( "(%p, %p)\n", ld, entry );
 
