diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c
index 97a19aa2ac95411774e0ea38d2778f591fc10941..5071d46150e4e777d43bdcfb2fe5b93fb1bc2a7c 100644
--- a/src/backend/access/gist/gistscan.c
+++ b/src/backend/access/gist/gistscan.c
@@ -240,6 +240,7 @@ gistendscan(PG_FUNCTION_ARGS)
 	GISTScanOpaque so = (GISTScanOpaque) scan->opaque;
 
 	freeGISTstate(so->giststate);
+	pfree(so->giststate);
 	MemoryContextDelete(so->queueCxt);
 	MemoryContextDelete(so->tempCxt);
 	pfree(so->tmpTreeItem);