{
            ScanKey     skey = scan->keyData + i;
 
+           /*
+            * Copy consistent support function to ScanKey structure
+            * instead of function implementing filtering operator.
+            */
            fmgr_info_copy(&(skey->sk_func),
                           &(so->giststate->consistentFn[skey->sk_attno - 1]),
                           so->giststate->scanCxt);
                     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,
             */
            so->orderByTypes[i] = get_func_rettype(skey->sk_func.fn_oid);
 
+           /*
+            * Copy distance support function to ScanKey structure
+            * instead of function implementing ordering operator.
+            */
+           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];