diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index 17501665e693c0aa74100324b28dbfcc126e6cb1..04be4bb692e34ee1bedafeec3721cbf9d311f74e 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -25,7 +25,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.48 2001/03/31 23:13:30 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.49 2001/05/28 15:29:51 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -400,14 +400,20 @@ pqReadData(PGconn *conn)
 	/* Left-justify any data in the buffer to make room */
 	if (conn->inStart < conn->inEnd)
 	{
-		memmove(conn->inBuffer, conn->inBuffer + conn->inStart,
-				conn->inEnd - conn->inStart);
-		conn->inEnd -= conn->inStart;
-		conn->inCursor -= conn->inStart;
-		conn->inStart = 0;
+		if (conn->inStart > 0)
+		{
+			memmove(conn->inBuffer, conn->inBuffer + conn->inStart,
+					conn->inEnd - conn->inStart);
+			conn->inEnd -= conn->inStart;
+			conn->inCursor -= conn->inStart;
+			conn->inStart = 0;
+		}
 	}
 	else
+	{
+		/* buffer is logically empty, reset it */
 		conn->inStart = conn->inCursor = conn->inEnd = 0;
+	}
 
 	/*
 	 * If the buffer is fairly full, enlarge it. We need to be able to