diff --git a/src/bin/pgaccess/Makefile b/src/bin/pgaccess/Makefile
index 224d5dc1d68bc583dcaa073ec7bf5e521673954a..24fdae58025bc4db13bf692f622126b0ec516208 100644
--- a/src/bin/pgaccess/Makefile
+++ b/src/bin/pgaccess/Makefile
@@ -4,7 +4,7 @@
 #
 # Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/pgaccess/Attic/Makefile,v 1.14 2000/10/20 21:03:58 petere Exp $
+# $Header: /cvsroot/pgsql/src/bin/pgaccess/Attic/Makefile,v 1.15 2001/02/07 20:30:20 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -19,6 +19,8 @@ all: pgaccess
 pgaccess: pgaccess.sh $(top_builddir)/src/Makefile.global
 	sed -e 's,@WISH@,$(WISH),g' \
 	    -e 's,@PGACCESSHOME@,$(pgaccessdir),g' \
+	    -e 's,@PGLIB@,$(libdir),g' \
+	    -e 's,@DEF_PGPORT@,$(DEF_PGPORT),g' \
 	  $< >$@
 	chmod a+x $@
 
diff --git a/src/bin/pgaccess/lib/preferences.tcl b/src/bin/pgaccess/lib/preferences.tcl
index c593013e88b8239dbc32ba5f241b16c1996685b5..e218f1cf7b905ae280529c87413d1a7b47b50b31 100644
--- a/src/bin/pgaccess/lib/preferences.tcl
+++ b/src/bin/pgaccess/lib/preferences.tcl
@@ -10,8 +10,8 @@ global PgAcVar
 	set PgAcVar(pref,autoload) 1
 	set PgAcVar(pref,systemtables) 0
 	set PgAcVar(pref,lastdb) {}
-	set PgAcVar(pref,lasthost) localhost
-	set PgAcVar(pref,lastport) 5432
+	set PgAcVar(pref,lasthost) {}
+	set PgAcVar(pref,lastport) {}
 	set PgAcVar(pref,username) {}
 	set PgAcVar(pref,password) {}
 	set PgAcVar(pref,language) english
diff --git a/src/bin/pgaccess/main.tcl b/src/bin/pgaccess/main.tcl
index 1a3d84e7eb120d3425b6f5c9290af630c3af7e82..3a4b60db573e2a0db688cec05a2b9d52838a3ff5 100644
--- a/src/bin/pgaccess/main.tcl
+++ b/src/bin/pgaccess/main.tcl
@@ -61,8 +61,8 @@ global PgAcVar CurrentDB
 	foreach module {mainlib database tables queries visualqb forms views functions reports scripts users sequences schema help preferences} {
 		source [file join $PgAcVar(PGACCESS_HOME) lib $module.tcl]
 	}
-	set PgAcVar(currentdb,host) localhost
-	set PgAcVar(currentdb,pgport) 5432
+	set PgAcVar(currentdb,host) [default_pg_host]
+	set PgAcVar(currentdb,pgport) [default_pg_port]
 	set CurrentDB {}
 	set PgAcVar(tablist) [list Tables Queries Views Sequences Functions Reports Forms Scripts Users Schema]
 	set PgAcVar(activetab) {}
@@ -73,6 +73,19 @@ global PgAcVar CurrentDB
 	Preferences::load
 }
 
+proc default_pg_host {} {
+    return localhost
+}
+
+proc default_pg_port {} {
+global env
+	if {[info exists env(PGPORT)]} {
+		return $env(PGPORT)
+	} else {
+		return 5432
+	}
+}
+
 proc {wpg_exec} {db cmd} {
 global PgAcVar
 	set PgAcVar(pgsql,cmd) "never executed"
@@ -165,15 +178,20 @@ global PgAcVar CurrentDB
 
 
 proc {main} {argc argv} {
-global PgAcVar CurrentDB tcl_platform
-	load libpgtcl[info sharedlibextension]
+global PgAcVar CurrentDB tcl_platform env
+	if {[info exists env(PGLIB)]} {
+		set libpgtclpath [file join $env(PGLIB) libpgtcl]
+	} else {
+		set libpgtclpath {libpgtcl}
+	}
+	load ${libpgtclpath}[info sharedlibextension]
 	catch {Mainlib::draw_tabs}
 	set PgAcVar(opendb,username) {}
 	set PgAcVar(opendb,password) {}
 	if {$argc>0} {
 		set PgAcVar(opendb,dbname) [lindex $argv 0]
-		set PgAcVar(opendb,host) localhost
-		set PgAcVar(opendb,pgport) 5432
+		set PgAcVar(opendb,host) [default_pg_host]
+		set PgAcVar(opendb,pgport) [default_pg_port]
 		Mainlib::open_database
 	} elseif {$PgAcVar(pref,autoload) && ($PgAcVar(pref,lastdb)!="")} {
 		set PgAcVar(opendb,dbname) $PgAcVar(pref,lastdb)
diff --git a/src/bin/pgaccess/pgaccess.sh b/src/bin/pgaccess/pgaccess.sh
index c7bb9b8c5492e888524ec515f5c9a901fdc4df16..aeaf4d097dfc8a7d2ade94c4443494a78e60a0c4 100755
--- a/src/bin/pgaccess/pgaccess.sh
+++ b/src/bin/pgaccess/pgaccess.sh
@@ -2,8 +2,12 @@
 
 PATH_TO_WISH='@WISH@'
 PGACCESS_HOME='@PGACCESSHOME@'
+PGLIB='@PGLIB@'
+PGPORT="${PGPORT:-@DEF_PGPORT@}"
 
 export PATH_TO_WISH
 export PGACCESS_HOME
+export PGLIB
+export PGPORT
 
 exec "${PATH_TO_WISH}" "${PGACCESS_HOME}/main.tcl" "$@"