diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index 3cc67661cd264c95e198b87e375084dda63facb4..a31d9164750cff54ac0a1f3f68d56d1c4ac53dba 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.40 1999/05/25 16:07:23 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.41 1999/05/25 18:20:28 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,7 +19,6 @@
 #include <access/nbtree.h>
 #include <access/heapam.h>
 #include <access/xact.h>
-#include <storage/bufmgr.h>
 #include <fmgr.h>
 
 #ifndef HAVE_MEMMOVE
@@ -64,14 +63,11 @@ _bt_doinsert(Relation rel, BTItem btitem, bool index_is_unique, Relation heapRel
 	/* find the page containing this key */
 	stack = _bt_search(rel, natts, itup_scankey, &buf);
 
-	blkno = BufferGetBlockNumber(buf);
-
 	/* trade in our read lock for a write lock */
-	_bt_relbuf(rel, buf, BT_READ);
+	LockBuffer(buf, BUFFER_LOCK_UNLOCK);
+	LockBuffer(buf, BT_WRITE);
 
 l1:
-	buf = _bt_getbuf(rel, blkno, BT_WRITE);
-
 	/*
 	 * If the page was split between the time that we surrendered our read
 	 * lock and acquired our write lock, then this page may no longer be
@@ -81,6 +77,7 @@ l1:
 	 */
 
 	buf = _bt_moveright(rel, buf, natts, itup_scankey, BT_WRITE);
+	blkno = BufferGetBlockNumber(buf);
 
 	/* if we're not allowing duplicates, make sure the key isn't */
 	/* already in the node */
@@ -99,13 +96,13 @@ l1:
 		/* key on the page before trying to compare it */
 		if (!PageIsEmpty(page) && offset <= maxoff)
 		{
-			TupleDesc	itupdesc;
-			BTItem		cbti;
-			HeapTupleData htup;
-			BTPageOpaque opaque;
-			Buffer		nbuf;
-			BlockNumber blkno;
-			bool		chtup = true;
+			TupleDesc		itupdesc;
+			BTItem			cbti;
+			HeapTupleData	htup;
+			BTPageOpaque 	opaque;
+			Buffer			nbuf;
+			BlockNumber 	nblkno;
+			bool			chtup = true;
 
 			itupdesc = RelationGetDescr(rel);
 			nbuf = InvalidBuffer;
@@ -157,7 +154,8 @@ l1:
 							_bt_relbuf(rel, nbuf, BT_READ);
 						_bt_relbuf(rel, buf, BT_WRITE);
 						XactLockTableWait(xwait);
-						goto l1;/* continue from the begin */
+						buf = _bt_getbuf(rel, blkno, BT_WRITE);
+						goto l1;	/* continue from the begin */
 					}
 					elog(ERROR, "Cannot insert a duplicate key into a unique index");
 				}
@@ -177,12 +175,12 @@ l1:
 					 * min key of the right page is the same, ooh - so
 					 * many dead duplicates...
 					 */
-					blkno = opaque->btpo_next;
+					nblkno = opaque->btpo_next;
 					if (nbuf != InvalidBuffer)
 						_bt_relbuf(rel, nbuf, BT_READ);
-					for (nbuf = InvalidBuffer;;)
+					for (nbuf = InvalidBuffer; ; )
 					{
-						nbuf = _bt_getbuf(rel, blkno, BT_READ);
+						nbuf = _bt_getbuf(rel, nblkno, BT_READ);
 						page = BufferGetPage(nbuf);
 						maxoff = PageGetMaxOffsetNumber(page);
 						opaque = (BTPageOpaque) PageGetSpecialPointer(page);
@@ -193,10 +191,10 @@ l1:
 						}
 						else
 						{		/* Empty or "pseudo"-empty page - get next */
-							blkno = opaque->btpo_next;
+							nblkno = opaque->btpo_next;
 							_bt_relbuf(rel, nbuf, BT_READ);
 							nbuf = InvalidBuffer;
-							if (blkno == P_NONE)
+							if (nblkno == P_NONE)
 								break;
 						}
 					}
diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index 5a93616054980a136369c140097e77b74868c927..ff883dd357091a2edd4790d078a4ac5cacb4edfd 100644
--- a/src/backend/access/nbtree/nbtpage.c
+++ b/src/backend/access/nbtree/nbtpage.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtpage.c,v 1.21 1999/05/25 16:07:26 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtpage.c,v 1.22 1999/05/25 18:20:29 vadim Exp $
  *
  *	NOTES
  *	   Postgres btree pages look like ordinary relation pages.	The opaque
@@ -27,7 +27,6 @@
 #include <storage/bufpage.h>
 #include <access/nbtree.h>
 #include <miscadmin.h>
-#include <storage/bufmgr.h>
 #include <storage/lmgr.h>
 
 #ifndef HAVE_MEMMOVE
@@ -36,26 +35,17 @@
 #include <string.h>
 #endif
 
-static void _bt_setpagelock(Relation rel, BlockNumber blkno, int access);
-static void _bt_unsetpagelock(Relation rel, BlockNumber blkno, int access);
-
 #define BTREE_METAPAGE	0
 #define BTREE_MAGIC		0x053162
 
-#ifdef BTREE_VERSION_1
 #define BTREE_VERSION	1
-#else
-#define BTREE_VERSION	0
-#endif
 
 typedef struct BTMetaPageData
 {
 	uint32		btm_magic;
 	uint32		btm_version;
 	BlockNumber btm_root;
-#ifdef BTREE_VERSION_1
 	int32		btm_level;
-#endif
 } BTMetaPageData;
 
 #define BTPageGetMeta(p) \
@@ -108,9 +98,7 @@ _bt_metapinit(Relation rel)
 	metad.btm_magic = BTREE_MAGIC;
 	metad.btm_version = BTREE_VERSION;
 	metad.btm_root = P_NONE;
-#ifdef BTREE_VERSION_1
 	metad.btm_level = 0;
-#endif
 	memmove((char *) BTPageGetMeta(pg), (char *) &metad, sizeof(metad));
 
 	op = (BTPageOpaque) PageGetSpecialPointer(pg);
@@ -246,9 +234,7 @@ _bt_getroot(Relation rel, int access)
 			rootblkno = BufferGetBlockNumber(rootbuf);
 			rootpg = BufferGetPage(rootbuf);
 			metad->btm_root = rootblkno;
-#ifdef BTREE_VERSION_1
 			metad->btm_level = 1;
-#endif
 			_bt_pageinit(rootpg, BufferGetPageSize(rootbuf));
 			rootopaque = (BTPageOpaque) PageGetSpecialPointer(rootpg);
 			rootopaque->btpo_flags |= (BTP_LEAF | BTP_ROOT);
@@ -257,8 +243,8 @@ _bt_getroot(Relation rel, int access)
 			/* swap write lock for read lock, if appropriate */
 			if (access != BT_WRITE)
 			{
-				_bt_setpagelock(rel, rootblkno, BT_READ);
-				_bt_unsetpagelock(rel, rootblkno, BT_WRITE);
+				LockBuffer(rootbuf, BUFFER_LOCK_UNLOCK);
+				LockBuffer(rootbuf, BT_READ);
 			}
 
 			/* okay, metadata is correct */
@@ -322,31 +308,24 @@ _bt_getbuf(Relation rel, BlockNumber blkno, int access)
 	Buffer		buf;
 	Page		page;
 
-	/*
-	 * If we want a new block, we can't set a lock of the appropriate type
-	 * until we've instantiated the buffer.
-	 */
-
 	if (blkno != P_NEW)
 	{
-		if (access == BT_WRITE)
-			_bt_setpagelock(rel, blkno, BT_WRITE);
-		else
-			_bt_setpagelock(rel, blkno, BT_READ);
-
 		buf = ReadBuffer(rel, blkno);
+		LockBuffer(buf, access);
 	}
 	else
 	{
+		/*
+		 * Extend bufmgr code is unclean and so we have to
+		 * use locking here.
+		 */
+		LockPage(rel, 0, ExclusiveLock);
 		buf = ReadBuffer(rel, blkno);
+		UnlockPage(rel, 0, ExclusiveLock);
 		blkno = BufferGetBlockNumber(buf);
 		page = BufferGetPage(buf);
 		_bt_pageinit(page, BufferGetPageSize(buf));
-
-		if (access == BT_WRITE)
-			_bt_setpagelock(rel, blkno, BT_WRITE);
-		else
-			_bt_setpagelock(rel, blkno, BT_READ);
+		LockBuffer(buf, access);
 	}
 
 	/* ref count and lock type are correct */
@@ -359,16 +338,7 @@ _bt_getbuf(Relation rel, BlockNumber blkno, int access)
 void
 _bt_relbuf(Relation rel, Buffer buf, int access)
 {
-	BlockNumber blkno;
-
-	blkno = BufferGetBlockNumber(buf);
-
-	/* access had better be one of read or write */
-	if (access == BT_WRITE)
-		_bt_unsetpagelock(rel, blkno, BT_WRITE);
-	else
-		_bt_unsetpagelock(rel, blkno, BT_READ);
-
+	LockBuffer(buf, BUFFER_LOCK_UNLOCK);
 	ReleaseBuffer(buf);
 }
 
@@ -382,11 +352,8 @@ _bt_relbuf(Relation rel, Buffer buf, int access)
 void
 _bt_wrtbuf(Relation rel, Buffer buf)
 {
-	BlockNumber blkno;
-
-	blkno = BufferGetBlockNumber(buf);
+	LockBuffer(buf, BUFFER_LOCK_UNLOCK);
 	WriteBuffer(buf);
-	_bt_unsetpagelock(rel, blkno, BT_WRITE);
 }
 
 /*
@@ -399,9 +366,6 @@ _bt_wrtbuf(Relation rel, Buffer buf)
 void
 _bt_wrtnorelbuf(Relation rel, Buffer buf)
 {
-	BlockNumber blkno;
-
-	blkno = BufferGetBlockNumber(buf);
 	WriteNoReleaseBuffer(buf);
 }
 
@@ -452,12 +416,10 @@ _bt_metaproot(Relation rel, BlockNumber rootbknum, int level)
 	Assert(metaopaque->btpo_flags & BTP_META);
 	metad = BTPageGetMeta(metap);
 	metad->btm_root = rootbknum;
-#ifdef BTREE_VERSION_1
-	if (level == 0)				/* called from _do_insert */
+	if (level == 0)						/* called from _do_insert */
 		metad->btm_level += 1;
 	else
 		metad->btm_level = level;		/* called from btsort */
-#endif
 	_bt_wrtbuf(rel, metabuf);
 }
 
@@ -582,32 +544,6 @@ _bt_getstackbuf(Relation rel, BTStack stack, int access)
 	}
 }
 
-static void
-_bt_setpagelock(Relation rel, BlockNumber blkno, int access)
-{
-
-	if (USELOCKING)
-	{
-		if (access == BT_WRITE)
-			LockPage(rel, blkno, ExclusiveLock);
-		else
-			LockPage(rel, blkno, ShareLock);
-	}
-}
-
-static void
-_bt_unsetpagelock(Relation rel, BlockNumber blkno, int access)
-{
-
-	if (USELOCKING)
-	{
-		if (access == BT_WRITE)
-			UnlockPage(rel, blkno, ExclusiveLock);
-		else
-			UnlockPage(rel, blkno, ShareLock);
-	}
-}
-
 void
 _bt_pagedel(Relation rel, ItemPointer tid)
 {
diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c
index b45d189a8558a943550ffd1ab6714f9f5e7707a7..44cc4e5adb0046d60f97c17ccc238ed810053f96 100644
--- a/src/backend/access/nbtree/nbtree.c
+++ b/src/backend/access/nbtree/nbtree.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.38 1999/05/25 16:07:27 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.39 1999/05/25 18:20:29 vadim Exp $
  *
  * NOTES
  *	  This file contains only the public interface routines.
@@ -394,7 +394,7 @@ btgettuple(IndexScanDesc scan, ScanDirection dir)
 
 		/*
 		 * Restore scan position using heap TID returned by previous call
-		 * to btgettuple().
+		 * to btgettuple(). _bt_restscan() locks buffer.
 		 */
 		_bt_restscan(scan);
 		res = _bt_next(scan, dir);
@@ -402,9 +402,15 @@ btgettuple(IndexScanDesc scan, ScanDirection dir)
 	else
 		res = _bt_first(scan, dir);
 
-	/* Save heap TID to use it in _bt_restscan */
+	/* 
+	 * Save heap TID to use it in _bt_restscan.
+	 * Unlock buffer before leaving index !
+	 */
 	if (res)
+	{
 		((BTScanOpaque) scan->opaque)->curHeapIptr = res->heap_iptr;
+		LockBuffer(((BTScanOpaque) scan->opaque)->btso_curbuf, BUFFER_LOCK_UNLOCK);
+	}
 
 	return (char *) res;
 }
@@ -437,18 +443,18 @@ btrescan(IndexScanDesc scan, bool fromEnd, ScanKey scankey)
 
 	so = (BTScanOpaque) scan->opaque;
 
-	/* we hold a read lock on the current page in the scan */
+	/* we don't hold a read lock on the current page in the scan */
 	if (ItemPointerIsValid(iptr = &(scan->currentItemData)))
 	{
-		_bt_relbuf(scan->relation, so->btso_curbuf, BT_READ);
+		ReleaseBuffer(so->btso_curbuf);
 		so->btso_curbuf = InvalidBuffer;
 		ItemPointerSetInvalid(iptr);
 	}
 
-	/* and we hold a read lock on the last marked item in the scan */
+	/* and we don't hold a read lock on the last marked item in the scan */
 	if (ItemPointerIsValid(iptr = &(scan->currentMarkData)))
 	{
-		_bt_relbuf(scan->relation, so->btso_mrkbuf, BT_READ);
+		ReleaseBuffer(so->btso_mrkbuf);
 		so->btso_mrkbuf = InvalidBuffer;
 		ItemPointerSetInvalid(iptr);
 	}
@@ -489,10 +495,10 @@ btmovescan(IndexScanDesc scan, Datum v)
 
 	so = (BTScanOpaque) scan->opaque;
 
-	/* release any locks we still hold */
+	/* we don't hold a read lock on the current page in the scan */
 	if (ItemPointerIsValid(iptr = &(scan->currentItemData)))
 	{
-		_bt_relbuf(scan->relation, so->btso_curbuf, BT_READ);
+		ReleaseBuffer(so->btso_curbuf);
 		so->btso_curbuf = InvalidBuffer;
 		ItemPointerSetInvalid(iptr);
 	}
@@ -512,11 +518,11 @@ btendscan(IndexScanDesc scan)
 
 	so = (BTScanOpaque) scan->opaque;
 
-	/* release any locks we still hold */
+	/* we don't hold any read locks */
 	if (ItemPointerIsValid(iptr = &(scan->currentItemData)))
 	{
 		if (BufferIsValid(so->btso_curbuf))
-			_bt_relbuf(scan->relation, so->btso_curbuf, BT_READ);
+			ReleaseBuffer(so->btso_curbuf);
 		so->btso_curbuf = InvalidBuffer;
 		ItemPointerSetInvalid(iptr);
 	}
@@ -524,7 +530,7 @@ btendscan(IndexScanDesc scan)
 	if (ItemPointerIsValid(iptr = &(scan->currentMarkData)))
 	{
 		if (BufferIsValid(so->btso_mrkbuf))
-			_bt_relbuf(scan->relation, so->btso_mrkbuf, BT_READ);
+			ReleaseBuffer(so->btso_mrkbuf);
 		so->btso_mrkbuf = InvalidBuffer;
 		ItemPointerSetInvalid(iptr);
 	}
@@ -547,20 +553,19 @@ btmarkpos(IndexScanDesc scan)
 
 	so = (BTScanOpaque) scan->opaque;
 
-	/* release lock on old marked data, if any */
+	/* we don't hold any read locks */
 	if (ItemPointerIsValid(iptr = &(scan->currentMarkData)))
 	{
-		_bt_relbuf(scan->relation, so->btso_mrkbuf, BT_READ);
+		ReleaseBuffer(so->btso_mrkbuf);
 		so->btso_mrkbuf = InvalidBuffer;
 		ItemPointerSetInvalid(iptr);
 	}
 
-	/* bump lock on currentItemData and copy to currentMarkData */
+	/* bump pin on current buffer */
 	if (ItemPointerIsValid(&(scan->currentItemData)))
 	{
-		so->btso_mrkbuf = _bt_getbuf(scan->relation,
-								   BufferGetBlockNumber(so->btso_curbuf),
-									 BT_READ);
+		so->btso_mrkbuf = ReadBuffer(scan->relation,
+									 BufferGetBlockNumber(so->btso_curbuf));
 		scan->currentMarkData = scan->currentItemData;
 		so->mrkHeapIptr = so->curHeapIptr;
 	}
@@ -577,20 +582,19 @@ btrestrpos(IndexScanDesc scan)
 
 	so = (BTScanOpaque) scan->opaque;
 
-	/* release lock on current data, if any */
+	/* we don't hold any read locks */
 	if (ItemPointerIsValid(iptr = &(scan->currentItemData)))
 	{
-		_bt_relbuf(scan->relation, so->btso_curbuf, BT_READ);
+		ReleaseBuffer(so->btso_curbuf);
 		so->btso_curbuf = InvalidBuffer;
 		ItemPointerSetInvalid(iptr);
 	}
 
-	/* bump lock on currentMarkData and copy to currentItemData */
+	/* bump pin on marked buffer */
 	if (ItemPointerIsValid(&(scan->currentMarkData)))
 	{
-		so->btso_curbuf = _bt_getbuf(scan->relation,
-								   BufferGetBlockNumber(so->btso_mrkbuf),
-									 BT_READ);
+		so->btso_curbuf = ReadBuffer(scan->relation,
+									 BufferGetBlockNumber(so->btso_mrkbuf));
 
 		scan->currentItemData = scan->currentMarkData;
 		so->curHeapIptr = so->mrkHeapIptr;
@@ -623,6 +627,7 @@ _bt_restscan(IndexScanDesc scan)
 	BTItem		item;
 	BlockNumber blkno;
 
+	LockBuffer(buf, BT_READ);
 	/*
 	 * We use this as flag when first index tuple on page is deleted but
 	 * we do not move left (this would slowdown vacuum) - so we set
diff --git a/src/backend/access/nbtree/nbtscan.c b/src/backend/access/nbtree/nbtscan.c
index 79e0c879d044dcdfd3e0230e1105d9b92b586262..1e92e2571dbe22061f6ac25b9df89dc8b15a38d2 100644
--- a/src/backend/access/nbtree/nbtscan.c
+++ b/src/backend/access/nbtree/nbtscan.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/Attic/nbtscan.c,v 1.21 1999/05/25 16:07:29 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/Attic/nbtscan.c,v 1.22 1999/05/25 18:20:30 vadim Exp $
  *
  *
  * NOTES
@@ -30,7 +30,6 @@
 #include <postgres.h>
 
 #include <storage/bufpage.h>
-#include <storage/bufmgr.h>
 #include <access/nbtree.h>
 
 typedef struct BTScanListData
@@ -134,6 +133,11 @@ _bt_scandel(IndexScanDesc scan, BlockNumber blkno, OffsetNumber offno)
 			ItemPointerSetInvalid(&(so->curHeapIptr));
 		else
 		{
+			/* 
+			 * We have to lock buffer before _bt_step 
+			 * and unlock it after that.
+			 */
+			LockBuffer(buf, BT_READ);
 			_bt_step(scan, &buf, BackwardScanDirection);
 			so->btso_curbuf = buf;
 			if (ItemPointerIsValid(current))
@@ -143,6 +147,7 @@ _bt_scandel(IndexScanDesc scan, BlockNumber blkno, OffsetNumber offno)
 				 PageGetItemId(pg, ItemPointerGetOffsetNumber(current)));
 
 				so->curHeapIptr = btitem->bti_itup.t_tid;
+				LockBuffer(buf, BUFFER_LOCK_UNLOCK);
 			}
 		}
 	}
@@ -169,6 +174,7 @@ _bt_scandel(IndexScanDesc scan, BlockNumber blkno, OffsetNumber offno)
 			so->btso_curbuf = so->btso_mrkbuf;
 			so->btso_mrkbuf = buf;
 			buf = so->btso_curbuf;
+			LockBuffer(buf, BT_READ);	/* as above */
 
 			_bt_step(scan, &buf, BackwardScanDirection);
 
@@ -184,6 +190,7 @@ _bt_scandel(IndexScanDesc scan, BlockNumber blkno, OffsetNumber offno)
 				 PageGetItemId(pg, ItemPointerGetOffsetNumber(current)));
 
 				so->mrkHeapIptr = btitem->bti_itup.t_tid;
+				LockBuffer(buf, BUFFER_LOCK_UNLOCK);	/* as above */
 			}
 		}
 	}
diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c
index cc3fc7475b4456955a11d9f14a615e8ceeeeb47a..556311010517d12a9c5a9695a1a5a0b7c299adf4 100644
--- a/src/backend/access/nbtree/nbtsearch.c
+++ b/src/backend/access/nbtree/nbtsearch.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.44 1999/05/25 16:07:31 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.45 1999/05/25 18:20:30 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -17,7 +17,6 @@
 #include <access/genam.h>
 #include <fmgr.h>
 #include <storage/bufpage.h>
-#include <storage/bufmgr.h>
 #include <access/nbtree.h>
 #include <catalog/pg_proc.h>
 
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index d5c2c30bef88c903b9f4f9130d635ca77823db2b..3c091759497186c4d327ae299a2ea3fa2fe00b48 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -5,7 +5,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Id: nbtsort.c,v 1.39 1999/05/25 16:07:34 momjian Exp $
+ *	  $Id: nbtsort.c,v 1.40 1999/05/25 18:20:31 vadim Exp $
  *
  * NOTES
  *
@@ -52,7 +52,6 @@
 #include "postgres.h"
 
 #include "access/nbtree.h"
-#include "storage/bufmgr.h"
 #include "storage/bufpage.h"
 #include "utils/memutils.h"
 
diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c
index 39a722bb074f129986eb8e1fe7396b536470c417..42666c431e5e3386a63286d70e60893c696e96ae 100644
--- a/src/backend/access/nbtree/nbtutils.c
+++ b/src/backend/access/nbtree/nbtutils.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtutils.c,v 1.26 1999/04/13 17:18:29 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtutils.c,v 1.27 1999/05/25 18:20:31 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -301,9 +301,6 @@ _bt_formitem(IndexTuple itup)
 	btitem = (BTItem) palloc(nbytes_btitem);
 	memmove((char *) &(btitem->bti_itup), (char *) itup, tuplen);
 
-#ifndef BTREE_VERSION_1
-	btitem->bti_oid = newoid();
-#endif
 	return btitem;
 }