diff --git a/src/backend/utils/activity/pgstat.c b/src/backend/utils/activity/pgstat.c
index b2ca3f39b7..d1f7eebbdb 100644
--- a/src/backend/utils/activity/pgstat.c
+++ b/src/backend/utils/activity/pgstat.c
@@ -1790,16 +1790,16 @@ pgstat_read_statsfile(XLogRecPtr redo)
 					}
 
 					/* Load back stats into shared memory */
-					if (pgstat_is_kind_builtin(kind))
-						ptr = ((char *) shmem) + info->shared_ctl_off +
-							info->shared_data_off;
-					else
+					if (pgstat_is_kind_custom(kind))
 					{
 						int			idx = kind - PGSTAT_KIND_CUSTOM_MIN;
 
 						ptr = ((char *) shmem->custom_data[idx]) +
 							info->shared_data_off;
 					}
+					else
+						ptr = ((char *) shmem) + info->shared_ctl_off +
+							info->shared_data_off;
 
 					if (!read_chunk(fpin, ptr, info->shared_data_len))
 					{
