diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c
index 1aa75f402713caf2c69a6e9c04d0d1209d60d256..203282b687e7d09e9ea1feb6a093428ddb62dd0a 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.10 1996/11/13 20:47:18 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.11 1996/11/15 18:36:59 momjian Exp $
  *
  * NOTES
  *    This file contains only the public interface routines.
@@ -277,7 +277,6 @@ btbuild(Relation heap,
 	    }  
 	}
     
-    /* be tidy */
     pfree(nulls);
     pfree(attdata);
     
@@ -467,14 +466,11 @@ btendscan(IndexScanDesc scan)
 	so->btso_mrkbuf = InvalidBuffer;
 	ItemPointerSetInvalid(iptr);
     }
-    
-    /* don't need scan registered anymore */
-    _bt_dropscan(scan);
-    
-    /* be tidy */
+
+    pfree (scan->opaque);
     if ( so->keyData != (ScanKey) NULL )
     	pfree (so->keyData);
-    pfree (scan->opaque);
+    _bt_dropscan(scan);
 }
 
 /*
diff --git a/src/backend/access/nbtree/nbtscan.c b/src/backend/access/nbtree/nbtscan.c
index e6b51cb1a5119b6b39244ec0beb2a064b3168977..3de9f39d3252ac0eba3763a91da842ddbbe094a9 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.5 1996/11/05 10:35:33 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/access/nbtree/Attic/nbtscan.c,v 1.6 1996/11/15 18:37:00 momjian Exp $
  *
  *
  * NOTES
@@ -78,9 +78,7 @@ _bt_dropscan(IndexScanDesc scan)
     else
 	last->btsl_next = chk->btsl_next;
     
-#ifdef PERFECT_MEM
     pfree (chk);
-#endif /* PERFECT_MEM */
 }
 
 void
diff --git a/src/backend/access/rtree/rtscan.c b/src/backend/access/rtree/rtscan.c
index b8adff5affef86b05c92dafdc4bd108122e44ed7..edfea248771bb29dd341239e519fa31985b235bc 100644
--- a/src/backend/access/rtree/rtscan.c
+++ b/src/backend/access/rtree/rtscan.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtscan.c,v 1.8 1996/11/05 10:54:19 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtscan.c,v 1.9 1996/11/15 18:37:10 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -223,6 +223,7 @@ rtendscan(IndexScanDesc s)
     if (p != (RTreeScanOpaque) NULL) {
 	freestack(p->s_stack);
 	freestack(p->s_markstk);
+    	pfree (s->opaque);
     }
     
     rtdropscan(s);