diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c
index 81b85c0..a2fde89 100644
*** a/src/backend/storage/ipc/sinvaladt.c
--- b/src/backend/storage/ipc/sinvaladt.c
*************** BackendIdGetProc(int backendID)
*** 403,411 ****
  void
  BackendIdGetTransactionIds(int backendID, TransactionId *xid, TransactionId *xmin)
  {
- 	ProcState  *stateP;
  	SISeg	   *segP = shmInvalBuffer;
- 	PGXACT	   *xact;
  
  	*xid = InvalidTransactionId;
  	*xmin = InvalidTransactionId;
--- 403,409 ----
*************** BackendIdGetTransactionIds(int backendID
*** 415,425 ****
  
  	if (backendID > 0 && backendID <= segP->lastBackend)
  	{
! 		stateP = &segP->procState[backendID - 1];
! 		xact = &ProcGlobal->allPgXact[stateP->proc->pgprocno];
  
! 		*xid = xact->xid;
! 		*xmin = xact->xmin;
  	}
  
  	LWLockRelease(SInvalWriteLock);
--- 413,428 ----
  
  	if (backendID > 0 && backendID <= segP->lastBackend)
  	{
! 		ProcState  *stateP = &segP->procState[backendID - 1];
! 		PGPROC	   *proc = stateP->proc;
  
! 		if (proc != NULL)
! 		{
! 			PGXACT	   *xact = &ProcGlobal->allPgXact[proc->pgprocno];
! 
! 			*xid = xact->xid;
! 			*xmin = xact->xmin;
! 		}
  	}
  
  	LWLockRelease(SInvalWriteLock);
