diff --git a/src/interfaces/libpq++/pgconnection.cc b/src/interfaces/libpq++/pgconnection.cc
index 321d41f03047a9f958176e22bf446881ceed5b5b..80b45685dcbf9b247a709c49813370e8d0656cb6 100644
--- a/src/interfaces/libpq++/pgconnection.cc
+++ b/src/interfaces/libpq++/pgconnection.cc
@@ -10,7 +10,7 @@
  * Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgconnection.cc,v 1.9 2000/04/22 22:39:15 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgconnection.cc,v 1.10 2000/07/27 19:44:01 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,16 +46,32 @@ PgConnection::~PgConnection()
   // Close the connection only if needed
   // This feature will most probably be used by the derived classes that
   // need not close the connection after they are destructed.
-  if ( pgCloseConnection ) {
+  CloseConnection();
+}
+
+
+// PgConnection::CloseConnection()
+// close down the connection if there is one
+void PgConnection::CloseConnection() 
+{
+  // if the connection is open, close it first
+  if ( pgCloseConnection ) {    
        if(pgResult) PQclear(pgResult);
+       pgResult=NULL;
        if(pgConn) PQfinish(pgConn);
+       pgConn=NULL;
+       pgCloseConnection=0;
   }
 }
 
+
 // PgConnection::connect
 // establish a connection to a backend
 ConnStatusType PgConnection::Connect(const char* conninfo)
 {
+  // if the connection is open, close it first
+  CloseConnection();
+
   // Connect to the database
   pgConn = PQconnectdb(conninfo);
 
diff --git a/src/interfaces/libpq++/pgconnection.h b/src/interfaces/libpq++/pgconnection.h
index 0a19359a9f5ca333412125d8eb170fb7319f1d42..1e7ccbad61d9bf6bddb491e30b98aba3ff415a00 100644
--- a/src/interfaces/libpq++/pgconnection.h
+++ b/src/interfaces/libpq++/pgconnection.h
@@ -13,7 +13,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  * 
- * $Id: pgconnection.h,v 1.7 2000/04/22 22:39:15 tgl Exp $
+ * $Id: pgconnection.h,v 1.8 2000/07/27 19:44:01 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -81,6 +81,7 @@ public:
     
 protected:
    ConnStatusType Connect(const char* conninfo);
+   void CloseConnection();
    string IntToString(int);
    // Default constructor is only available to subclasses
    PgConnection();