Index: src/backend/access/nbtree/nbtinsert.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v
retrieving revision 1.142
diff -c -c -r1.142 nbtinsert.c
*** src/backend/access/nbtree/nbtinsert.c	25 Jul 2006 19:13:00 -0000	1.142
--- src/backend/access/nbtree/nbtinsert.c	26 Jul 2006 01:35:52 -0000
***************
*** 438,445 ****
  			if (P_ISLEAF(lpageop) && P_HAS_GARBAGE(lpageop))
  			{
  				_bt_vacuum_one_page(rel, buf);
! 				if (PageGetFreeSpace(page) >= itemsz)
! 					break;		/* OK, now we have enough space */
  			}
  
  			/*
--- 438,451 ----
  			if (P_ISLEAF(lpageop) && P_HAS_GARBAGE(lpageop))
  			{
  				_bt_vacuum_one_page(rel, buf);
! 				/*
! 				 *	Free space should be large enough for the new tuple and
! 				 *	should be >= 10% because scanning the page over and
! 				 *	over again to get just a little free space is inefficient.
! 				 */
! 				if (PageGetFreeSpace(page) >= itemsz &&
! 					PageGetFreeSpace(page) >= BLCKSZ / 10)
! 					break;
  			}
  
  			/*
