diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index cc6be16..88dc987 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -6455,6 +6455,8 @@ CreateCheckPoint(int flags)
 	freespace = INSERT_FREESPACE(Insert);
 	if (freespace < SizeOfXLogRecord)
 	{
+		/* AdvanceXLInsertBuffer() needs a valid ThisTimeLineID */
+		InitXLOGAccess();
 		(void) AdvanceXLInsertBuffer(false);
 		/* OK to ignore update return flag, since we will do flush anyway */
 		freespace = INSERT_FREESPACE(Insert);
