diff --git a/CHANGES b/CHANGES
index 0ffe55295d17962598f8cffc8963587acc4c3e3d..02f3258a8a54382c6671a2e49f08cae35d8055df 100644
--- a/CHANGES
+++ b/CHANGES
@@ -51,6 +51,7 @@ OpenLDAP 2.4.14 Engineering
 	Fixed slapd-ldif deadlock (ITS#5329)
 	Fixed slapd-meta double response sending (ITS#5854)
 	Fixed slapd-meta alias deref for retry (ITS#5889)
+	Fixed slapd-sock descriptor leak (ITS#5939)
 	Fixed slapo-accesslog on glued dbs (ITS#5907)
 	Fixed slapo-dynlist handling of flags (ITS#5898)
 	Fixed slapo-memberof multiple instantiation (ITS#5903)
diff --git a/servers/slapd/back-sock/opensock.c b/servers/slapd/back-sock/opensock.c
index b2a9943ea143da3ea65fc04f0a9c8ce2d3f9c88a..b02e573370fcca23e798f36f22015ec9b9704d77 100644
--- a/servers/slapd/back-sock/opensock.c
+++ b/servers/slapd/back-sock/opensock.c
@@ -57,6 +57,7 @@ opensock(
 	if ( connect( fd, (struct sockaddr *)&sockun, sizeof(sockun) ) < 0 ) {
 		Debug( LDAP_DEBUG_ANY, "socket connect(%s) failed\n",
 			sockpath ? sockpath : "<null>", 0, 0 );
+		close( fd );
 		return( NULL );
 	}