diff --git a/libraries/libldap/request.c b/libraries/libldap/request.c
index c017a57eef1027d223aec2dcff02a735d3be9f5a..2ea52590727b3eef3d865d0d61a0dbfb5a2d0b7a 100644
--- a/libraries/libldap/request.c
+++ b/libraries/libldap/request.c
@@ -568,7 +568,7 @@ ldap_free_request( LDAP *ld, LDAPRequest *lr )
 int
 ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
 {
-	int		rc, count, len, newdn;
+	int		rc, count, len, newdn = 0;
 #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_DNS
 	int		ldapref;
 #endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_DNS */
@@ -656,9 +656,13 @@ ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp )
 		*hadrefp = 1;
 		if (( refdn = strchr( tmpref, '/' )) != NULL ) {
 			*refdn++ = '\0';
-			newdn = 1;
-		} else {
-			newdn = 0;
+			if ( *refdn != '\0' )
+			{
+				newdn = 1;
+			} else
+			{
+				refdn = NULL;
+			}
 		}
 
 		if (( ber = re_encode_request( ld, origreq->lr_ber,