diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c
new file mode 100644
index 31758a1..f388ea3
*** a/src/backend/access/gist/gistscan.c
--- b/src/backend/access/gist/gistscan.c
*************** gistrescan(IndexScanDesc scan, ScanKey k
*** 284,291 ****
  					 GIST_DISTANCE_PROC, skey->sk_attno,
  					 RelationGetRelationName(scan->indexRelation));
  
- 			fmgr_info_copy(&(skey->sk_func), finfo, so->giststate->scanCxt);
- 
  			/*
  			 * Look up the datatype returned by the original ordering
  			 * operator. GiST always uses a float8 for the distance function,
--- 284,289 ----
*************** gistrescan(IndexScanDesc scan, ScanKey k
*** 300,305 ****
--- 298,305 ----
  			 */
  			so->orderByTypes[i] = get_func_rettype(skey->sk_func.fn_oid);
  
+ 			fmgr_info_copy(&(skey->sk_func), finfo, so->giststate->scanCxt);
+ 
  			/* Restore prior fn_extra pointers, if not first time */
  			if (!first_time)
  				skey->sk_func.fn_extra = fn_extras[i];
