diff -rpcd a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c *** a/src/backend/access/transam/xlog.c 2013-06-25 03:55:41.000000000 +0900 --- b/src/backend/access/transam/xlog.c 2013-08-01 07:19:32.599000000 +0900 *************** XLogFileRead(XLogSegNo segno, int emode, *** 2658,2666 **** /* * If the segment was fetched from archival storage, replace the existing ! * xlog segment (if any) with the archival version. */ ! if (source == XLOG_FROM_ARCHIVE) { KeepFileRestoredFromArchive(path, xlogfname); --- 2658,2668 ---- /* * If the segment was fetched from archival storage, replace the existing ! * xlog segment (if any) with the archival version when cascading ! * replication is allowed. */ ! if (source == XLOG_FROM_ARCHIVE && ! AllowCascadeReplication()) { KeepFileRestoredFromArchive(path, xlogfname);