diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c
index b5cda50..d94b61f 100644
*** a/src/backend/replication/basebackup.c
--- b/src/backend/replication/basebackup.c
*************** perform_base_backup(basebackup_options *
*** 217,222 ****
--- 217,228 ----
  				ptr.xlogid = logid;
  				ptr.xrecoff = logseg * XLogSegSize + TAR_SEND_SIZE * i;
  
+ 				/*
+ 				 *	Some old compilers, e.g. 2.95.3/x86, think that passing
+ 				 *	a struct in the same function as a longjump might clobber
+ 				 *	a variable.  bjm 2011-02-04
+ 				 *	http://lists.apple.com/archives/xcode-users/2003/Dec//msg00051.html
+ 				 */
  				XLogRead(buf, ptr, TAR_SEND_SIZE);
  				if (pq_putmessage('d', buf, TAR_SEND_SIZE))
  					ereport(ERROR,
