diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 67e0be9..0e88aa5 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -48,6 +48,7 @@
 #include "pgstat.h"
 #include "postmaster/autovacuum.h"
 #include "storage/bufmgr.h"
+#include "storage/fd.h"
 #include "storage/freespace.h"
 #include "storage/lmgr.h"
 #include "utils/inval.h"
@@ -668,13 +669,26 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
 		/* Update the all-visible flag on the page */
 		if (!PageIsAllVisible(page) && all_visible)
 		{
+			elog(WARNING, "debugging: setting PD_ALL_VISIBLE in relation \"%s\" on page %u (OldestXmin %u)", relname, blkno, OldestXmin);
 			PageSetAllVisible(page);
 			SetBufferCommitInfoNeedsSave(buf);
 		}
 		else if (PageIsAllVisible(page) && !all_visible)
 		{
-			elog(WARNING, "PD_ALL_VISIBLE flag was incorrectly set in relation \"%s\" page %u",
-				 relname, blkno);
+			elog(WARNING, "PD_ALL_VISIBLE flag was incorrectly set in relation \"%s\" page %u (OldestXmin %u)",
+				 relname, blkno, OldestXmin);
+			{
+				char fname[MAXPGPATH];
+				FILE *fp;
+
+				/* dump the raw page to a file */
+				snprintf(fname, sizeof(fname), "/tmp/pageimage_%s_%d",
+						 relname, blkno);
+				fp = AllocateFile(fname, "wb");
+				fwrite(page, 1, BLCKSZ, fp);
+				FreeFile(fp);
+				
+			}
 			PageClearAllVisible(page);
 			SetBufferCommitInfoNeedsSave(buf);
 
