diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c
index b10320e4a627c30c94f4b4dd5497603aa552729f..351d68a84afe6eb5a80843f1a475e4e9d6459699 100644
--- a/servers/slapd/overlays/pcache.c
+++ b/servers/slapd/overlays/pcache.c
@@ -2478,8 +2478,9 @@ pcache_response(
 			} else if ( rs->sr_err == LDAP_SIZELIMIT_EXCEEDED
 				&& si->qtemp->limitttl )
 			{
-				si->caching_reason = PC_SIZELIMIT;
 				Entry *e;
+
+				si->caching_reason = PC_SIZELIMIT;
 				for (;si->head; si->head=e) {
 					e = si->head->e_private;
 					si->head->e_private = NULL;