diff --git a/src/test/regress/expected/hash_index.out b/src/test/regress/expected/hash_index.out
index 0403540..258d501 100644
--- a/src/test/regress/expected/hash_index.out
+++ b/src/test/regress/expected/hash_index.out
@@ -333,6 +333,25 @@ ROLLBACK;
 INSERT INTO hash_cleanup_heap SELECT 1 FROM generate_series(1, 50) as i;
 CHECKPOINT;
 VACUUM hash_cleanup_heap;
+-- Test insert-driven cleanup of dead index tuples (_hash_vacuum_one_page).
+TRUNCATE hash_cleanup_heap;
+INSERT INTO hash_cleanup_heap SELECT 1 FROM generate_series(1, 1000) as i;
+DELETE FROM hash_cleanup_heap
+  WHERE ctid IN ('(0,5)','(0,10)','(0,15)','(0,20)','(0,25)',
+                 '(0,30)','(0,35)','(0,40)','(0,45)','(0,50)');
+SET enable_seqscan = off;
+SET enable_bitmapscan = off;
+SELECT count(*) FROM hash_cleanup_heap WHERE keycol = 1;
+ count 
+-------
+   990
+(1 row)
+
+INSERT INTO hash_cleanup_heap SELECT 1 FROM generate_series(1, 200) as i;
+RESET enable_seqscan;
+RESET enable_bitmapscan;
 -- Clean up.
 DROP TABLE hash_cleanup_heap;
 -- Index on temp table.
diff --git a/src/test/regress/sql/hash_index.sql b/src/test/regress/sql/hash_index.sql
index 60571f6..1c85d98 100644
--- a/src/test/regress/sql/hash_index.sql
+++ b/src/test/regress/sql/hash_index.sql
@@ -314,6 +314,21 @@ INSERT INTO hash_cleanup_heap SELECT 1 FROM generate_series(1, 50) as i;
 CHECKPOINT;
 VACUUM hash_cleanup_heap;
 
+-- Test insert-driven cleanup of dead index tuples (_hash_vacuum_one_page).
+TRUNCATE hash_cleanup_heap;
+INSERT INTO hash_cleanup_heap SELECT 1 FROM generate_series(1, 1000) as i;
+DELETE FROM hash_cleanup_heap
+  WHERE ctid IN ('(0,5)','(0,10)','(0,15)','(0,20)','(0,25)',
+                 '(0,30)','(0,35)','(0,40)','(0,45)','(0,50)');
+SET enable_seqscan = off;
+SET enable_bitmapscan = off;
+SELECT count(*) FROM hash_cleanup_heap WHERE keycol = 1;
+INSERT INTO hash_cleanup_heap SELECT 1 FROM generate_series(1, 200) as i;
+RESET enable_seqscan;
+RESET enable_bitmapscan;
+
 -- Clean up.
 DROP TABLE hash_cleanup_heap;
 
