diff --git a/CHANGES b/CHANGES
index 32a9b466c0408605a4ae6a1c9d96a6887a542574..d8b732e1d54afaa70d29edac3cf2260904685c0f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5,6 +5,7 @@ OpenLDAP 2.4.13 Engineering
 	Fixed liblutil hex conversion (ITS#5699)
 	Fixed liblutil returning undefined data (ITS#5748)
 	Fixed libldap error code return (ITS#5762)
+	Fixed libldap interaction with GnuTLS CN IP-based matches (ITS#5789)
 	Fixed libldap Ipv6 detection (ITS#5739)
 	Fixed slapd acl checks on ADD (ITS#4556,ITS#5723)
 	Added slapd keyword add_content_acl for add checks (ITS#4556,ITS#5723)
diff --git a/libraries/libldap/tls.c b/libraries/libldap/tls.c
index b042aec9f4f9f4dc5d63f060a881b121f1e7a5ff..9b008ddb9ceda75440e823051cde6de4887433e0 100644
--- a/libraries/libldap/tls.c
+++ b/libraries/libldap/tls.c
@@ -1894,6 +1894,7 @@ ldap_pvt_tls_check_hostname( LDAP *ld, void *s, const char *name_in )
 
 		} else {
 			ret = LDAP_LOCAL_ERROR;
+			if ( !len1 ) len1 = strlen( name );
 			if ( len1 == altnamesize && strncasecmp(name, altname, altnamesize) == 0 ) {
 				ret = LDAP_SUCCESS;