diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c
index 4c2fe69..1ab4dc4 100644
*** a/src/backend/utils/sort/tuplesort.c
--- b/src/backend/utils/sort/tuplesort.c
*************** inittapes(Tuplesortstate *state)
*** 1670,1675 ****
--- 1670,1676 ----
  	tapeSpace = maxTapes * TAPE_BUFFER_OVERHEAD;
  	if (tapeSpace + GetMemoryChunkSpace(state->memtuples) < state->allowedMem)
  		USEMEM(state, tapeSpace);
+      if (state->availMem<0) state->availMem=0;
  
  	/*
  	 * Make sure that the temp file(s) underlying the tape set are created in
