diff --git a/pgadmin/db/pgConn.cpp b/pgadmin/db/pgConn.cpp
index 3b6d195..1abf246 100644
--- a/pgadmin/db/pgConn.cpp
+++ b/pgadmin/db/pgConn.cpp
@@ -246,6 +246,15 @@ bool pgConn::DoConnect()
 		}
 	}
 
+	if (!Initialize())
+		return false;
+
+	return true;
+}
+
+
+bool pgConn::Initialize()
+{
 	// Set client encoding to Unicode/Ascii, Datestyle to ISO, and ask for notices.
 	if (PQstatus(conn) == CONNECTION_OK)
 	{
@@ -270,10 +279,7 @@ bool pgConn::DoConnect()
 			sql += wxT("datname=") + qtString(db);
 		}
 
-
 		pgSet *set = ExecuteSet(sql);
-
-
 		if (set)
 		{
 			if (set->ColNumber(wxT("\"datlastsysoid\"")) >= 0)
@@ -312,12 +318,10 @@ bool pgConn::DoConnect()
 				else
 					return false;
 			}
+			return true;
 		}
 	}
-	else
-		return false;
-
-	return true;
+	return false;
 }
 
 
@@ -1005,6 +1009,7 @@ int pgConn::GetStatus() const
 void pgConn::Reset()
 {
 	PQreset(conn);
+	Initialize();
 }
 
 
diff --git a/pgadmin/include/db/pgConn.h b/pgadmin/include/db/pgConn.h
index cd36343..2a91784 100644
--- a/pgadmin/include/db/pgConn.h
+++ b/pgadmin/include/db/pgConn.h
@@ -287,6 +287,7 @@ protected:
 
 private:
 	bool DoConnect();
+	bool Initialize();
 
 	wxString qtString(const wxString &value);
 
