*** a/src/backend/executor/nodeWindowAgg.c
--- b/src/backend/executor/nodeWindowAgg.c
***************
*** 1007,1016 **** restart:
  	 */
  	tuplestore_select_read_pointer(winstate->buffer, winstate->current_ptr);
  	if (!tuplestore_gettupleslot(winstate->buffer, true,
! 								 winstate->ss.ss_ScanTupleSlot))
  		elog(ERROR, "unexpected end of tuplestore");
  
  	/*
  	 * Evaluate true window functions
  	 */
  	numfuncs = winstate->numfuncs;
--- 1007,1022 ----
  	 */
  	tuplestore_select_read_pointer(winstate->buffer, winstate->current_ptr);
  	if (!tuplestore_gettupleslot(winstate->buffer, true,
! 								 winstate->temp_slot_1))
  		elog(ERROR, "unexpected end of tuplestore");
  
  	/*
+ 	 * Scanning slot may be discarded during spool_tuples(),
+ 	 * so we need to copy it for later use in eval_windowfunction()
+ 	 */
+ 	ExecCopySlot(winstate->ss.ss_ScanTupleSlot, winstate->temp_slot_1);
+ 
+ 	/*
  	 * Evaluate true window functions
  	 */
  	numfuncs = winstate->numfuncs;
