diff --git a/HISTORY b/HISTORY
index 966760965cf5343d1b01e4a202b705eb40dd06e4..43b847260d2bf3d223443285597563698ae41753 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,3 +1,10 @@
+PostgreSQL 6.5               Fri Apr 23 17:40:19 EDT 1999
+=========================================================
+
+A dump/restore is required.
+
+PLACE HOLDER
+
 PostgreSQL 6.4.2             Sat Jan  2 11:04:05 EST 1999
 =========================================================
 
diff --git a/doc/src/sgml/install.sgml b/doc/src/sgml/install.sgml
index aa62649aa5622fa961f2f47d871bae845eb241c4..eeb747df773b42822b057b2b20dd7c713c8a62c8 100644
--- a/doc/src/sgml/install.sgml
+++ b/doc/src/sgml/install.sgml
@@ -4,7 +4,7 @@
 <Abstract>
 <Para>
 Complete installation instructions for 
-<ProductName>Postgres</ProductName> v6.4.
+<ProductName>Postgres</ProductName> v6.5.
 </Para>
 </Abstract>
 
@@ -167,8 +167,8 @@ remaining steps in the installation will happen in this account.
 <Step Performance="required">
 <Para>
 Ftp file 
-<ulink url="ftp://ftp.postgresql.org/pub/postgresql-v6.4.tar.gz">
- <filename>ftp://ftp.postgresql.org/pub/postgresql-v6.4.tar.gz</filename></ulink>
+<ulink url="ftp://ftp.postgresql.org/pub/postgresql-v6.5.tar.gz">
+ <filename>ftp://ftp.postgresql.org/pub/postgresql-v6.5.tar.gz</filename></ulink>
  from the Internet.  Store it in your home directory.
 </Para>
 </Step>
@@ -268,7 +268,7 @@ from the new distribution:
 
 <ProgramListing>
 $ cd
-$ gunzip -c postgresql-v6.4.tar.gz \
+$ gunzip -c postgresql-v6.5.tar.gz \
     | tar xvf - src/bin/pg_dump/pg_dumpall
 $ chmod a+x src/bin/pg_dump/pg_dumpall
 $ src/bin/pg_dump/pg_dumpall -z > db.out
@@ -411,7 +411,7 @@ $ exit
  Unzip and untar the new source file.  Type
 <ProgramListing>
 $ cd /usr/src/pgsql
-$ gunzip -c ~/postgresql-v6.4.tar.gz | tar xvf -
+$ gunzip -c ~/postgresql-v6.5.tar.gz | tar xvf -
 </ProgramListing>
 </Para>
 </Step>
@@ -989,17 +989,7 @@ For example,
 <listitem>
 <Para>
      For a i686/Linux-ELF platform, no tests failed since this is the
-     v6.4 regression testing reference platform.
-</Para>
-</listitem>
-
-<listitem>
-<Para>
-     For the SPARC/Linux-ELF platform, using the 970525 beta version of
-     <ProductName>Postgres</ProductName> v6.2 the following tests "failed":
-     float8 and geometry "failed" due to minor precision differences in
-     floating point numbers.  select_views produces massively different output,
-     but the differences are due to minor floating point differences.
+     v6.5 regression testing reference platform.
 </Para>
 </listitem>
 
@@ -1109,11 +1099,11 @@ VACUUM;
 <Para>
  Clean up after yourself.  Type
 <ProgramListing>
-$ rm -rf /usr/src/pgsql_6_0
-$ rm -rf /usr/local/pgsql_6_0
+$ rm -rf /usr/src/pgsql_6_5
+$ rm -rf /usr/local/pgsql_6_5
 # Also delete old database directory tree if it is not in
-#  /usr/local/pgsql_6_0/data
-$ rm ~/postgresql-v6.2.1.tar.gz
+#  /usr/local/pgsql_6_5/data
+$ rm ~/postgresql-v6.5.tar.gz
 </ProgramListing>
 </Para>
 </Step>
@@ -1160,7 +1150,7 @@ $ lpr -l -s -r manpage.hp
 <itemizedlist>
 <listitem>
 <para>
-The version of <ProductName>Postgres</ProductName> (v6.4, 6.3.2, beta 981014, etc.).
+The version of <ProductName>Postgres</ProductName> (v6.5, 6.4.2, beta 981014, etc.).
 </para>
 </listitem>
 
diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index c35bf8d825ba9821466a2ca1e41ec7fe758c99c3..889f24b832598e022238c8a2845d69b41db19d09 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -6,7 +6,7 @@
 # Copyright (c) 1998, Regents of the University of California
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.7 1999/03/14 16:02:57 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.8 1999/04/30 02:04:49 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -86,14 +86,14 @@ ifeq ($(PORTNAME), bsdi)
   ifdef BSD_SHLIB
     ifeq ($(DLSUFFIX), .so)
       install-shlib-dep := install-shlib
-      shlib				:= lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+      shlib			:= lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
       LDFLAGS_SL		+= -shared
       CFLAGS			+= $(CFLAGS_SL)
     endif
     ifeq ($(DLSUFFIX), .o)
       install-shlib-dep	:= install-shlib
-      shlib				:= lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
-      LD				:= shlicc
+      shlib			:= lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+      LD			:= shlicc
       LDFLAGS_SL	 	+= -O -r
       CFLAGS			+= $(CFLAGS_SL)
     endif
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
index 2f822add66d9f4f8b09fbe4a4a940b4e681876e7..4c387643742a9097229794e60493b25da9007bcd 100644
--- a/src/backend/storage/lmgr/lock.c
+++ b/src/backend/storage/lmgr/lock.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.46 1999/03/06 21:17:44 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.47 1999/04/30 02:04:50 momjian Exp $
  *
  * NOTES
  *	  Outside modules can create a lock table and acquire/release
@@ -820,13 +820,17 @@ LockResolveConflicts(LOCKMETHOD lockmethod,
 		/* ------------------------
 		 * If someone with a greater priority is waiting for the lock,
 		 * do not continue and share the lock, even if we can.	bjm
+		 * Don't do this if the process already has some locks, because
+		 * this could hold up other people waiting on our locks, causing
+		 * a priority inversion.  bjm
 		 * ------------------------
 		 */
 		int			myprio = LockMethodTable[lockmethod]->ctl->prio[lockmode];
 		PROC_QUEUE *waitQueue = &(lock->waitProcs);
 		PROC	   *topproc = (PROC *) MAKE_PTR(waitQueue->links.prev);
 
-		if (waitQueue->size && topproc->prio > myprio)
+		if (SHMQueueEmpty(lockQueue) && waitQueue->size &&
+			topproc->prio > myprio)
 		{
 			XID_PRINT("LockResolveConflicts: higher priority proc waiting",
 					  result);
@@ -1595,7 +1599,7 @@ DeadLockCheck(SHM_QUEUE *lockQueue, LOCK *findlock, bool skip_check)
 		 *
 		 * The lock we are waiting for is already in MyProc->lockQueue so we
 		 * need to skip it here.  We are trying to find it in someone
-		 * else's lockQueue.
+		 * else's lockQueue.   bjm
 		 */
 		if (lock == findlock && !skip_check)
 			return true;
@@ -1625,7 +1629,7 @@ DeadLockCheck(SHM_QUEUE *lockQueue, LOCK *findlock, bool skip_check)
 					 *
 					 * Basically, the test is, "Do we both hold some lock on
 					 * findlock, and we are both waiting in the lock
-					 * queue?"
+					 * queue?"   bjm
 					 */
 
 					Assert(skip_check);
@@ -1672,7 +1676,7 @@ DeadLockCheck(SHM_QUEUE *lockQueue, LOCK *findlock, bool skip_check)
 						 * hold locks and are waiting. Now we check for
 						 * cases where we have two or more tables in a
 						 * deadlock.  We do this by continuing to search
-						 * for someone holding a lock
+						 * for someone holding a lock       bjm
 						 */
 						if (DeadLockCheck(&(proc->lockQueue), findlock, false))
 							return true;
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
index cc5233b07641d1f4a1a8149280729fa0c2594e9d..229a78587cbd643389b2c42aac4f00fcbe29ef1f 100644
--- a/src/backend/storage/lmgr/proc.c
+++ b/src/backend/storage/lmgr/proc.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.52 1999/03/28 20:32:26 vadim Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.53 1999/04/30 02:04:51 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,7 +46,7 @@
  *		This is so that we can support more backends. (system-wide semaphore
  *		sets run out pretty fast.)				  -ay 4/95
  *
- * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.52 1999/03/28 20:32:26 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.53 1999/04/30 02:04:51 momjian Exp $
  */
 #include <sys/time.h>
 #include <unistd.h>
@@ -516,8 +516,7 @@ ProcSleep(PROC_QUEUE *waitQueue,/* lock->waitProcs */
 	 * In a full queue, we would have a reader holding a lock, then a writer
 	 * gets the lock, then a bunch of readers, made up of readers who
 	 * could not share the first readlock because a writer was waiting,
-	 * and new readers arriving while the writer had the lock.
-	 *
+	 * and new readers arriving while the writer had the lock.  bjm
 	 */
 	proc = (PROC *) MAKE_PTR(waitQueue->links.prev);