diff --git a/CHANGES b/CHANGES
index cc7ca6933d2abdd32d52fd84d5a468d6d441e0dd..dbe4c1ff5f30e84e13a1fe3387aae1ac05220ddf 100644
--- a/CHANGES
+++ b/CHANGES
@@ -89,6 +89,7 @@ OpenLDAP 2.4.24 Engineering
 	Fixed slapo-pcache callback freeing (ITS#6640)
 	Fixed slapo-pcache to ignore undefined attrs (ITS#6600)
 	Fixed slapo-pcache pointer freeing (ITS#6797)
+	Fixed slapo-pcache with negative caching (ITS#6796)
 	Fixed slapo-ppolicy don't update opattrs on consumers (ITS#6608)
 	Fixed slapo-ppolicy to allow userPassword deletion (ITS#6620)
 	Fixed slapo-refint when last group member is deleted (ITS#6663)
diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c
index 91f0d052ce699bb780dec1555e56ce252113eede..57b0dbcd28d80a55f0303a5cf03e524aecf5063e 100644
--- a/servers/slapd/overlays/pcache.c
+++ b/servers/slapd/overlays/pcache.c
@@ -675,9 +675,11 @@ url2query(
 			}
 
 			ber_str2bv( &lud->lud_exts[ i ][ STRLENOF( "x-uuid=" ) ], 0, 0, &tmpUUID );
-			rc = syn_UUID->ssyn_pretty( syn_UUID, &tmpUUID, &uuid, NULL );
-			if ( rc != LDAP_SUCCESS ) {
-				goto error;
+			if ( !BER_BVISEMPTY( &tmpUUID ) ) {
+				rc = syn_UUID->ssyn_pretty( syn_UUID, &tmpUUID, &uuid, NULL );
+				if ( rc != LDAP_SUCCESS ) {
+					goto error;
+				}
 			}
 			got |= GOT_UUID;