diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index d9b96b8620..c742df415d 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.45 2000/11/13 15:18:07 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.46 2000/11/13 23:37:51 momjian Exp $
 -->
 
  <chapter id="libpq-chapter">
@@ -1844,9 +1844,9 @@ Without a host name, libpq will connect using a local Unix domain socket.
 </listitem>
 <listitem>
 <para>
-<envar>PGPORT</envar>  sets the default port or local Unix domain socket
-file extension for communicating with the <productname>Postgres</productname>
-backend.
+<envar>PGPORT</envar> and <envar>PGUNIXSOCKET</envar> set the default
+port or local Unix domain socket file extension for communicating with
+the <productname>Postgres</productname> backend.
 </para>
 </listitem>
 <listitem>
diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml
index d5199e307a..5bcb543938 100644
--- a/doc/src/sgml/ref/createdb.sgml
+++ b/doc/src/sgml/ref/createdb.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.12 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.13 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -56,18 +56,6 @@ Postgres documentation
       </listitem>
      </varlistentry>
 
-    <varlistentry>
-      <term>-k, --unixsocket <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-      <para>
-      Specifies the Unix-domain socket on which the
-      <application>postmaster</application> is running.
-      Without this option, the socket is created in <filename>/tmp</filename>
-      based on the port number.
-      </para>
-      </listitem>
-    </varlistentry>
-
      <varlistentry>
       <term>-U, --username <replaceable class="parameter">username</replaceable></term>
       <listitem>
diff --git a/doc/src/sgml/ref/createlang.sgml b/doc/src/sgml/ref/createlang.sgml
index 0258646ad7..87d27442e9 100644
--- a/doc/src/sgml/ref/createlang.sgml
+++ b/doc/src/sgml/ref/createlang.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.11 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.12 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -101,18 +101,6 @@ Postgres documentation
       </listitem>
      </varlistentry>
 
-    <varlistentry>
-      <term>-k, --unixsocket <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-      <para>
-      Specifies the Unix-domain socket on which the
-      <application>postmaster</application> is running.
-      Without this option, the socket is created in <filename>/tmp</filename>
-      based on the port number.
-      </para>
-      </listitem>
-    </varlistentry>
-
      <varlistentry>
       <term>-U, --username <replaceable class="parameter">username</replaceable></term>
       <listitem>
diff --git a/doc/src/sgml/ref/createuser.sgml b/doc/src/sgml/ref/createuser.sgml
index 9845fcba1e..9c7a3a2624 100644
--- a/doc/src/sgml/ref/createuser.sgml
+++ b/doc/src/sgml/ref/createuser.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.11 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.12 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -55,18 +55,6 @@ Postgres documentation
       </listitem>
      </varlistentry>
 
-    <varlistentry>
-      <term>-k, --unixsocket <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-      <para>
-      Specifies the Unix-domain socket on which the
-      <application>postmaster</application> is running.
-      Without this option, the socket is created in <filename>/tmp</filename>
-      based on the port number.
-      </para>
-      </listitem>
-    </varlistentry>
-
      <varlistentry>
       <term>-e, --echo</term>
       <listitem>
diff --git a/doc/src/sgml/ref/dropdb.sgml b/doc/src/sgml/ref/dropdb.sgml
index c265c016e9..1eb4c4f46f 100644
--- a/doc/src/sgml/ref/dropdb.sgml
+++ b/doc/src/sgml/ref/dropdb.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.5 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.6 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -55,18 +55,6 @@ Postgres documentation
       </listitem>
      </varlistentry>
 
-    <varlistentry>
-      <term>-k, --unixsocket <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-      <para>
-      Specifies the Unix-domain socket on which the
-      <application>postmaster</application> is running.
-      Without this option, the socket is created in <filename>/tmp</filename>
-      based on the port number.
-      </para>
-      </listitem>
-    </varlistentry>
-
      <varlistentry>
       <term>-U, --username <replaceable class="parameter">username</replaceable></term>
       <listitem>
diff --git a/doc/src/sgml/ref/droplang.sgml b/doc/src/sgml/ref/droplang.sgml
index 5d75a89fde..2346a0d32d 100644
--- a/doc/src/sgml/ref/droplang.sgml
+++ b/doc/src/sgml/ref/droplang.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/droplang.sgml,v 1.5 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/droplang.sgml,v 1.6 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -101,18 +101,6 @@ Postgres documentation
       </listitem>
      </varlistentry>
 
-    <varlistentry>
-      <term>-k, --unixsocket <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-      <para>
-      Specifies the Unix-domain socket on which the
-      <application>postmaster</application> is running.
-      Without this option, the socket is created in <filename>/tmp</filename>
-      based on the port number.
-      </para>
-      </listitem>
-    </varlistentry>
-
      <varlistentry>
       <term>-U, --username <replaceable class="parameter">username</replaceable></term>
       <listitem>
diff --git a/doc/src/sgml/ref/dropuser.sgml b/doc/src/sgml/ref/dropuser.sgml
index a2b1e537e5..7f8f7899e5 100644
--- a/doc/src/sgml/ref/dropuser.sgml
+++ b/doc/src/sgml/ref/dropuser.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.6 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.7 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -55,18 +55,6 @@ Postgres documentation
       </listitem>
      </varlistentry>
 
-    <varlistentry>
-      <term>-k, --unixsocket <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-      <para>
-      Specifies the Unix-domain socket on which the
-      <application>postmaster</application> is running.
-      Without this option, the socket is created in <filename>/tmp</filename>
-      based on the port number.
-      </para>
-      </listitem>
-    </varlistentry>
-
      <varlistentry>
       <term>-e, --echo</term>
       <listitem>
diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml
index b0ad3e49cf..4406ea94f0 100644
--- a/doc/src/sgml/ref/pg_dump.sgml
+++ b/doc/src/sgml/ref/pg_dump.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.21 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.22 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -25,7 +25,6 @@ Postgres documentation
   <synopsis>
 pg_dump [ <replaceable class="parameter">dbname</replaceable> ]
 pg_dump [ -h <replaceable class="parameter">host</replaceable> ]
-    [ -k <replaceable class="parameter">path</replaceable> ]
     [ -p <replaceable class="parameter">port</replaceable> ]
     [ -t <replaceable class="parameter">table</replaceable> ]
     [ -a ] [ -c ] [ -d ] [ -D ] [ -i ] [ -n ] [ -N ]
@@ -206,21 +205,6 @@ pg_dump [ -h <replaceable class="parameter">host</replaceable> ]
       </listitem>
      </varlistentry>
 
-     <varlistentry>
-      <term>-k <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-       <para>
-	Specifies the local Unix domain socket file path
-	on which the <application>postmaster</application>
-	is listening for connections.
-        Without this option, the socket path name defaults to
-        the value of the <envar>PGUNIXSOCKET</envar> environment
-	variable (if set), otherwise it is constructed
-        from the port number.
-       </para>
-      </listitem>
-     </varlistentry>
-
      <varlistentry>
       <term>-p <replaceable class="parameter">port</replaceable></term>
       <listitem>
diff --git a/doc/src/sgml/ref/pg_dumpall.sgml b/doc/src/sgml/ref/pg_dumpall.sgml
index 1d78b9008c..f6999059d1 100644
--- a/doc/src/sgml/ref/pg_dumpall.sgml
+++ b/doc/src/sgml/ref/pg_dumpall.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.12 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.13 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -23,7 +23,7 @@ Postgres documentation
    <date>1999-07-20</date>
   </refsynopsisdivinfo>
   <synopsis>
-pg_dumpall [ -h <replaceable class="parameter">host</replaceable> ] [ -k <replaceable class="parameter">path</replaceable> ] [ -p <replaceable class="parameter">port</replaceable> ] [ -a ] [ -d ] [ -D ] [ -O ] [ -s ] [ -u ] [ -v ] [ -x ] [ --accounts-only ]
+pg_dumpall [ -h <replaceable class="parameter">host</replaceable> ] [ -p <replaceable class="parameter">port</replaceable> ] [ -a ] [ -d ] [ -D ] [ -O ] [ -s ] [ -u ] [ -v ] [ -x ] [ --accounts-only ]
   </synopsis>
 
   <refsect2 id="R2-APP-PG-DUMPALL-1">
@@ -149,21 +149,6 @@ pg_dumpall [ -h <replaceable class="parameter">host</replaceable> ] [ -k <replac
       </listitem>
      </varlistentry>
 
-     <varlistentry>
-      <term>-k <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-       <para>
-	Specifies the local Unix domain socket file path
-	on which the <application>postmaster</application>
-	is listening for connections.
-        Without this option, the socket path name defaults to
-        the value of the <envar>PGUNIXSOCKET</envar> environment
-	variable (if set), otherwise it is constructed
-        from the port number.
-       </para>
-      </listitem>
-     </varlistentry>
-
      <varlistentry>
       <term>-p <replaceable class="parameter">port</replaceable></term>
       <listitem>
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index ca8d14f6de..1780fcfcc8 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.41 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.42 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -1329,19 +1329,6 @@ Access permissions for database "test"
     </varlistentry>
 
 
-    <varlistentry>
-      <term>-k, --unixsocket <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-      <para>
-      Specifies the Unix-domain socket on which the
-      <application>postmaster</application> is running.
-      Without this option, the socket is created in <filename>/tmp</filename>
-      based on the port number.
-      </para>
-      </listitem>
-    </varlistentry>
-
-
     <varlistentry>
       <term>-H, --html</term>
       <listitem>
diff --git a/doc/src/sgml/ref/vacuumdb.sgml b/doc/src/sgml/ref/vacuumdb.sgml
index 7a701f216d..28151190a7 100644
--- a/doc/src/sgml/ref/vacuumdb.sgml
+++ b/doc/src/sgml/ref/vacuumdb.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.11 2000/11/13 15:18:08 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.12 2000/11/13 23:37:51 momjian Exp $
 Postgres documentation
 -->
 
@@ -136,18 +136,6 @@ Postgres documentation
       </listitem>
      </varlistentry>
 
-    <varlistentry>
-      <term>-k, --unixsocket <replaceable class="parameter">path</replaceable></term>
-      <listitem>
-      <para>
-      Specifies the Unix-domain socket on which the
-      <application>postmaster</application> is running.
-      Without this option, the socket is created in <filename>/tmp</filename>
-      based on the port number.
-      </para>
-      </listitem>
-    </varlistentry>
-
      <varlistentry>
       <term>-U <replaceable class="parameter">username</replaceable></term>
       <term>--username <replaceable class="parameter">username</replaceable></term>
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index c6b645b15b..b9d4973013 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.183 2000/11/13 15:18:11 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.184 2000/11/13 23:37:52 momjian Exp $
  *
  * NOTES
  *
@@ -1334,8 +1334,8 @@ get_host_port(void)
 		{
 			char msg[1024];
 			snprintf(msg, sizeof(msg),
-				 "FATAL: get_host_port: gethostbyname(%s) failed: %s\n",
-				 HostName, hstrerror(h_errno));
+				 "FATAL: get_host_port: gethostbyname(%s) failed\n",
+				 HostName);
 			fputs(msg, stderr);
 			pqdebug("%s", msg);
 			exit(1);
diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h
index ffe071a665..8fceb26c8e 100644
--- a/src/bin/pg_dump/pg_backup.h
+++ b/src/bin/pg_dump/pg_backup.h
@@ -99,9 +99,8 @@ typedef struct _restoreOptions {
 
 	int			useDB;
 	char		*dbname;
-	char		*pghost;
 	char		*pgport;
-	char		*pgunixsocket;
+	char		*pghost;
 	int			ignoreVersion;
 	int			requirePassword;
 
@@ -123,7 +122,6 @@ PGconn* ConnectDatabase(Archive *AH,
 		const char* 	dbname,
 		const char*	pghost,
 		const char*	pgport,
-		const char*	pgunixsocket,
 		const int	reqPwd,
 		const int	ignoreVersion);
 
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 085a2eb329..d8a969b41e 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -131,9 +131,8 @@ void RestoreArchive(Archive* AHX, RestoreOptions *ropt)
 		if (AH->version < K_VERS_1_3)
 			die_horribly(AH, "Direct database connections are not supported in pre-1.3 archives");
 
-		ConnectDatabase(AHX, ropt->dbname, ropt->pghost, ropt->pgport,
-							ropt->pgunixsocket, ropt->requirePassword,
-							ropt->ignoreVersion);
+		ConnectDatabase(AHX, ropt->dbname, ropt->pghost, ropt->pgport, 
+							ropt->requirePassword, ropt->ignoreVersion);
 
 		/*
 		 * If no superuser was specified then see if the current user will do...
diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h
index a938f5e339..2c7291e6c6 100644
--- a/src/bin/pg_dump/pg_backup_archiver.h
+++ b/src/bin/pg_dump/pg_backup_archiver.h
@@ -187,7 +187,6 @@ typedef struct _archiveHandle {
 	char				*archdbname;		/* DB name *read* from archive */
 	char				*pghost;
 	char				*pgport;
-	char				*pgunixsocket;
 	PGconn				*connection;
 	PGconn				*blobConnection;	/* Connection for BLOB xref */
 	int					txActive;			/* Flag set if TX active on connection */
diff --git a/src/bin/pg_dump/pg_backup_db.c b/src/bin/pg_dump/pg_backup_db.c
index 082edd5824..72189eb29f 100644
--- a/src/bin/pg_dump/pg_backup_db.c
+++ b/src/bin/pg_dump/pg_backup_db.c
@@ -273,7 +273,6 @@ PGconn* ConnectDatabase(Archive *AHX,
 		const char* 	dbname,
 		const char* 	pghost,
 		const char* 	pgport,
-		const char* 	pgunixsocket,
 		const int		reqPwd,
 		const int		ignoreVersion)
 {
@@ -308,15 +307,6 @@ PGconn* ConnectDatabase(Archive *AHX,
 	else
 	    AH->pgport = NULL;
 
-	if (pgunixsocket != NULL)
-	{
-		AH->pgport = strdup(pgunixsocket);
-		sprintf(tmp_string, "unixsocket=%s ", AH->pgunixsocket);
-		strcat(connect_string, tmp_string);
-	}
-	else
-	    AH->pgunixsocket = NULL;
-
 	sprintf(tmp_string, "dbname=%s ", AH->dbname);
 	strcat(connect_string, tmp_string);
 
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 738425a3eb..a7c1ca9e8a 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -22,7 +22,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.178 2000/11/13 15:18:13 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.179 2000/11/13 23:37:52 momjian Exp $
  *
  * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
  *
@@ -200,7 +200,6 @@ help(const char *progname)
 		"  -F, --format {c|f|p}     output file format (custom, files, plain text)\n"
 		"  -h, --host <hostname>    server host name\n"
 		"  -i, --ignore-version     proceed when database version != pg_dump version\n"
-		"  -k, --unixsocket <path>  server Unix-domain socket name\n"
 		"  -n, --no-quotes          suppress most quotes around identifiers\n"
 		"  -N, --quotes             enable most quotes around identifiers\n"
 		"  -o, --oids               dump object ids (oids)\n"
@@ -227,7 +226,6 @@ help(const char *progname)
 		"  -F {c|f|p}               output file format (custom, files, plain text)\n"
 		"  -h <hostname>            server host name\n"
 		"  -i                       proceed when database version != pg_dump version\n"
-		"  -k <path>                server Unix-domain socket name\n"
 		"  -n                       suppress most quotes around identifiers\n"
 		"  -N                       enable most quotes around identifiers\n"
 		"  -o                       dump object ids (oids)\n"
@@ -631,7 +629,6 @@ main(int argc, char **argv)
 	const char *dbname = NULL;
 	const char *pghost = NULL;
 	const char *pgport = NULL;
-	const char *pgunixsocket = NULL;
 	char	   *tablename = NULL;
 	bool		oids = false;
 	TableInfo  *tblinfo;
@@ -661,7 +658,6 @@ main(int argc, char **argv)
 		{"attribute-inserts", no_argument, NULL, 'D'},
 		{"host", required_argument, NULL, 'h'},
 		{"ignore-version", no_argument, NULL, 'i'},
-		{"unixsocket", required_argument, NULL, 'k'},
 		{"no-reconnect", no_argument, NULL, 'R'},
 		{"no-quotes", no_argument, NULL, 'n'},
 		{"quotes", no_argument, NULL, 'N'},
@@ -756,10 +752,6 @@ main(int argc, char **argv)
 				ignore_version = true;
 				break;
 
-			case 'k':			/* server Unix-domain socket */
-				pgunixsocket = optarg;
-				break;
-
 			case 'n':			/* Do not force double-quotes on
 								 * identifiers */
 				force_quotes = false;
@@ -956,8 +948,7 @@ main(int argc, char **argv)
 	dbname = argv[optind];
 
 	/* Open the database using the Archiver, so it knows about it. Errors mean death */
-	g_conn = ConnectDatabase(g_fout, dbname, pghost, pgport, pgunixsocket,
-							 use_password, ignore_version);
+	g_conn = ConnectDatabase(g_fout, dbname, pghost, pgport, use_password, ignore_version);
 
 	/*
 	 * Start serializable transaction to dump consistent data
diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c
index cafb7e9df6..458482ed51 100644
--- a/src/bin/pg_dump/pg_restore.c
+++ b/src/bin/pg_dump/pg_restore.c
@@ -101,7 +101,6 @@ struct option cmdopts[] = {
 				{ "ignore-version", 0, NULL, 'i'},
 				{ "index", 2, NULL, 'I'},
 				{ "list", 0, NULL, 'l'},
-				{ "unixsocket", 1, NULL, 'k' },
 				{ "no-acl", 0, NULL, 'x' },
 				{ "no-owner", 0, NULL, 'O'},
 				{ "no-reconnect", 0, NULL, 'R' },
@@ -133,9 +132,9 @@ int main(int argc, char **argv)
 	progname = *argv;
 
 #ifdef HAVE_GETOPT_LONG
-	while ((c = getopt_long(argc, argv, "acCd:f:F:h:i:k:lNoOp:P:rRsS:t:T:uU:vx", cmdopts, NULL)) != EOF)
+	while ((c = getopt_long(argc, argv, "acCd:f:F:h:i:lNoOp:P:rRsS:t:T:uU:vx", cmdopts, NULL)) != EOF)
 #else
-	while ((c = getopt(argc, argv, "acCd:f:F:h:i:k:lNoOp:P:rRsS:t:T:uU:vx")) != -1)
+	while ((c = getopt(argc, argv, "acCd:f:F:h:i:lNoOp:P:rRsS:t:T:uU:vx")) != -1)
 #endif
 	{
 		switch (c)
@@ -171,10 +170,6 @@ int main(int argc, char **argv)
 			case 'i':
 				opts->ignoreVersion = 1;
 				break;
-			case 'k':
-				if (strlen(optarg) != 0)
-					opts->pgunixsocket = strdup(optarg);
-				break;
 			case 'N':
 				opts->origOrder = 1;
 				break;
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 65c05a4ac9..0d3a1f3a89 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.37 2000/11/13 15:18:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.38 2000/11/13 23:37:53 momjian Exp $
  */
 #include "postgres.h"
 #include "command.h"
@@ -1202,7 +1202,6 @@ do_connect(const char *new_dbname, const char *new_user)
 	SetVariable(pset.vars, "USER", NULL);
 	SetVariable(pset.vars, "HOST", NULL);
 	SetVariable(pset.vars, "PORT", NULL);
-	SetVariable(pset.vars, "UNIXSOCKET", NULL);
 	SetVariable(pset.vars, "ENCODING", NULL);
 
 	/* If dbname is "" then use old name, else new one (even if NULL) */
@@ -1232,7 +1231,6 @@ do_connect(const char *new_dbname, const char *new_user)
 	do
 	{
 		need_pass = false;
-		/* FIXME use PQconnectdb to support passing the Unix socket */
 		pset.db = PQsetdbLogin(PQhost(oldconn), PQport(oldconn),
 							   NULL, NULL, dbparam, userparam, pwparam);
 
@@ -1309,7 +1307,6 @@ do_connect(const char *new_dbname, const char *new_user)
 	SetVariable(pset.vars, "USER", PQuser(pset.db));
 	SetVariable(pset.vars, "HOST", PQhost(pset.db));
 	SetVariable(pset.vars, "PORT", PQport(pset.db));
-	SetVariable(pset.vars, "UNIXSOCKET", PQunixsocket(pset.db));
 	SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding));
 
 	pset.issuper = test_superuser(PQuser(pset.db));
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index da0542df59..658854fc08 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.24 2000/11/13 15:18:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.25 2000/11/13 23:37:53 momjian Exp $
  */
 #include "postgres.h"
 #include "common.h"
@@ -329,7 +329,6 @@ PSQLexec(const char *query)
 			SetVariable(pset.vars, "DBNAME", NULL);
 			SetVariable(pset.vars, "HOST", NULL);
 			SetVariable(pset.vars, "PORT", NULL);
-			SetVariable(pset.vars, "UNIXSOCKET", NULL);
 			SetVariable(pset.vars, "USER", NULL);
 			SetVariable(pset.vars, "ENCODING", NULL);
 			return NULL;
@@ -509,7 +508,6 @@ SendQuery(const char *query)
 				SetVariable(pset.vars, "DBNAME", NULL);
 				SetVariable(pset.vars, "HOST", NULL);
 				SetVariable(pset.vars, "PORT", NULL);
-				SetVariable(pset.vars, "UNIXSOCKET", NULL);
 				SetVariable(pset.vars, "USER", NULL);
 				SetVariable(pset.vars, "ENCODING", NULL);
 				return false;
diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c
index b9ee9caa67..21bcdcafa7 100644
--- a/src/bin/psql/help.c
+++ b/src/bin/psql/help.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.33 2000/11/13 15:18:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.34 2000/11/13 23:37:53 momjian Exp $
  */
 #include "postgres.h"
 #include "help.h"
@@ -103,16 +103,6 @@ usage(void)
 	puts(")");
 
 	puts("  -H              HTML table output mode (-P format=html)");
-
-	/* Display default Unix-domain socket */
-	env = getenv("PGUNIXSOCKET");
-	printf("  -k <path>       Specify Unix domain socket name (default: ");
-	if (env)
-		fputs(env, stdout);
-	else
-		fputs("computed from the port", stdout);
-	puts(")");
-
 	puts("  -l              List available databases, then exit");
 	puts("  -n              Disable readline");
 	puts("  -o <filename>   Send query output to filename (or |pipe)");
diff --git a/src/bin/psql/prompt.c b/src/bin/psql/prompt.c
index d29bc12ddb..4788c2ce12 100644
--- a/src/bin/psql/prompt.c
+++ b/src/bin/psql/prompt.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/prompt.c,v 1.14 2000/11/13 15:18:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/prompt.c,v 1.15 2000/11/13 23:37:53 momjian Exp $
  */
 #include "postgres.h"
 #include "prompt.h"
@@ -190,11 +190,6 @@ get_prompt(promptStatus_t status)
 					if (pset.db && PQport(pset.db))
 						strncpy(buf, PQport(pset.db), MAX_PROMPT_SIZE);
 					break;
-					/* DB server Unix-domain socket */
-				case '<':
-					if (pset.db && PQunixsocket(pset.db))
-						strncpy(buf, PQunixsocket(pset.db), MAX_PROMPT_SIZE);
-					break;
 					/* DB server user name */
 				case 'n':
 					if (pset.db)
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 9b0e60f0a3..46e476a2ae 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.38 2000/11/13 15:18:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.39 2000/11/13 23:37:53 momjian Exp $
  */
 #include "postgres.h"
 
@@ -65,7 +65,6 @@ struct adhoc_opts
 	char	   *dbname;
 	char	   *host;
 	char	   *port;
-	char	   *unixsocket;
 	char	   *username;
 	enum _actions action;
 	char	   *action_string;
@@ -162,7 +161,6 @@ main(int argc, char *argv[])
 	do
 	{
 		need_pass = false;
-		/* FIXME use PQconnectdb to allow setting the unix socket */
 		pset.db = PQsetdbLogin(options.host, options.port, NULL, NULL,
 			options.action == ACT_LIST_DB ? "template1" : options.dbname,
 							   username, password);
@@ -208,7 +206,6 @@ main(int argc, char *argv[])
 	SetVariable(pset.vars, "USER", PQuser(pset.db));
 	SetVariable(pset.vars, "HOST", PQhost(pset.db));
 	SetVariable(pset.vars, "PORT", PQport(pset.db));
-	SetVariable(pset.vars, "UNIXSOCKET", PQunixsocket(pset.db));
 	SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding));
 
 #ifndef WIN32
@@ -323,7 +320,6 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
 		{"field-separator", required_argument, NULL, 'F'},
 		{"host", required_argument, NULL, 'h'},
 		{"html", no_argument, NULL, 'H'},
-		{"unixsocket", required_argument, NULL, 'k'},
 		{"list", no_argument, NULL, 'l'},
 		{"no-readline", no_argument, NULL, 'n'},
 		{"output", required_argument, NULL, 'o'},
@@ -357,14 +353,14 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
 	memset(options, 0, sizeof *options);
 
 #ifdef HAVE_GETOPT_LONG
-	while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:lh:Hk:no:p:P:qRsStT:uU:v:VWxX?", long_options, &optindex)) != -1)
+	while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:lh:Hno:p:P:qRsStT:uU:v:VWxX?", long_options, &optindex)) != -1)
 #else							/* not HAVE_GETOPT_LONG */
 
 	/*
 	 * Be sure to leave the '-' in here, so we can catch accidental long
 	 * options.
 	 */
-	while ((c = getopt(argc, argv, "aAc:d:eEf:F:lh:Hk:no:p:P:qRsStT:uU:v:VWxX?-")) != -1)
+	while ((c = getopt(argc, argv, "aAc:d:eEf:F:lh:Hno:p:P:qRsStT:uU:v:VWxX?-")) != -1)
 #endif	 /* not HAVE_GETOPT_LONG */
 	{
 		switch (c)
@@ -410,9 +406,6 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
 			case 'l':
 				options->action = ACT_LIST_DB;
 				break;
-			case 'k':
-				options->unixsocket = optarg;
-				break;
 			case 'n':
 				options->no_readline = true;
 				break;
diff --git a/src/bin/scripts/createdb b/src/bin/scripts/createdb
index 213913ba89..e506af5885 100644
--- a/src/bin/scripts/createdb
+++ b/src/bin/scripts/createdb
@@ -11,7 +11,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.10 2000/11/13 15:18:14 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.11 2000/11/13 23:37:53 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -50,15 +50,6 @@ do
         --port=*)
                 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
                 ;;
-	--unixsocket|-k)
-		PSQLOPT="$PSQLOPT -k $2"
-		shift;;
-        -k*)
-                PSQLOPT="$PSQLOPT $1"
-                ;;
-        --unixsocket=*)
-                PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'`
-                ;;
 	--username|-U)
 		PSQLOPT="$PSQLOPT -U $2"
 		shift;;
@@ -123,7 +114,6 @@ if [ "$usage" ]; then
 	echo "  -E, --encoding=ENCODING         Multibyte encoding for the database"
 	echo "  -h, --host=HOSTNAME             Database server host"
 	echo "  -p, --port=PORT                 Database server port"
-	echo "  -k, --unixsocket=PATH           Database server Unix-domain socket name"
 	echo "  -U, --username=USERNAME         Username to connect as"
 	echo "  -W, --password                  Prompt for password"
 	echo "  -e, --echo                      Show the query being sent to the backend"
diff --git a/src/bin/scripts/createlang.sh b/src/bin/scripts/createlang.sh
index c22dcba652..3fc0a1b02f 100644
--- a/src/bin/scripts/createlang.sh
+++ b/src/bin/scripts/createlang.sh
@@ -8,7 +8,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.18 2000/11/13 15:18:14 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.19 2000/11/13 23:37:53 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -65,15 +65,6 @@ do
         --port=*)
                 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
                 ;;
-	--unixsocket|-k)
-		PSQLOPT="$PSQLOPT -k $2"
-		shift;;
-        -k*)
-                PSQLOPT="$PSQLOPT $1"
-                ;;
-        --unixsocket=*)
-                PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'`
-                ;;
 	--username|-U)
 		PSQLOPT="$PSQLOPT -U $2"
 		shift;;
@@ -135,7 +126,6 @@ if [ "$usage" ]; then
 	echo "Options:"
 	echo "  -h, --host=HOSTNAME             Database server host"
 	echo "  -p, --port=PORT                 Database server port"
-	echo "  -k, --unixsocket=PATH           Database server Unix-domain socket name"
 	echo "  -U, --username=USERNAME         Username to connect as"
 	echo "  -W, --password                  Prompt for password"
 	echo "  -d, --dbname=DBNAME             Database to install language in"
diff --git a/src/bin/scripts/createuser b/src/bin/scripts/createuser
index 198e4b81cf..e3859eb2a7 100644
--- a/src/bin/scripts/createuser
+++ b/src/bin/scripts/createuser
@@ -8,7 +8,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.13 2000/11/13 15:18:14 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.14 2000/11/13 23:37:53 momjian Exp $
 #
 # Note - this should NOT be setuid.
 #
@@ -63,15 +63,6 @@ do
         --port=*)
                 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
                 ;;
-	--unixsocket|-k)
-		PSQLOPT="$PSQLOPT -k $2"
-		shift;;
-        -k*)
-                PSQLOPT="$PSQLOPT $1"
-                ;;
-        --unixsocket=*)
-                PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'`
-                ;;
 # Note: These two specify the user to connect as (like in psql),
 #       not the user you're creating.
 	--username|-U)
@@ -144,7 +135,6 @@ if [ "$usage" ]; then
 	echo "  -P, --pwprompt                  Assign a password to new user"
 	echo "  -h, --host=HOSTNAME             Database server host"
 	echo "  -p, --port=PORT                 Database server port"
-	echo "  -k, --unixsocket=PATH           Database server Unix-domain socket name"
 	echo "  -U, --username=USERNAME         Username to connect as (not the one to create)"
 	echo "  -W, --password                  Prompt for password to connect"
 	echo "  -e, --echo                      Show the query being sent to the backend"
diff --git a/src/bin/scripts/dropdb b/src/bin/scripts/dropdb
index 586b62ac7f..35bb08a71a 100644
--- a/src/bin/scripts/dropdb
+++ b/src/bin/scripts/dropdb
@@ -10,7 +10,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.8 2000/11/13 15:18:14 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.9 2000/11/13 23:37:53 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -59,15 +59,6 @@ do
         --port=*)
                 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
                 ;;
-	--unixsocket|-k)
-		PSQLOPT="$PSQLOPT -k $2"
-		shift;;
-        -k*)
-                PSQLOPT="$PSQLOPT $1"
-                ;;
-        --unixsocket=*)
-                PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'`
-                ;;
 	--username|-U)
 		PSQLOPT="$PSQLOPT -U $2"
 		shift;;
@@ -112,7 +103,6 @@ if [ "$usage" ]; then
 	echo "Options:"
 	echo "  -h, --host=HOSTNAME             Database server host"
 	echo "  -p, --port=PORT                 Database server port"
-	echo "  -k, --unixsocket=PATH           Database server Unix-domain socket name"
 	echo "  -U, --username=USERNAME         Username to connect as"
 	echo "  -W, --password                  Prompt for password"
 	echo "  -i, --interactive               Prompt before deleting anything"
diff --git a/src/bin/scripts/droplang b/src/bin/scripts/droplang
index 46856e4241..023ae4fc99 100644
--- a/src/bin/scripts/droplang
+++ b/src/bin/scripts/droplang
@@ -8,7 +8,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.9 2000/11/13 15:18:14 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.10 2000/11/13 23:37:53 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -65,15 +65,6 @@ do
         --port=*)
                 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
                 ;;
-	--unixsocket|-k)
-		PSQLOPT="$PSQLOPT -k $2"
-		shift;;
-        -k*)
-                PSQLOPT="$PSQLOPT $1"
-                ;;
-        --unixsocket=*)
-                PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'`
-                ;;
 	--username|-U)
 		PSQLOPT="$PSQLOPT -U $2"
 		shift;;
@@ -122,7 +113,6 @@ if [ "$usage" ]; then
 	echo "Options:"
 	echo "  -h, --host=HOSTNAME             Database server host"
 	echo "  -p, --port=PORT                 Database server port"
-	echo "  -k, --unixsocket=PATH           Database server Unix-domain socket name"
 	echo "  -U, --username=USERNAME         Username to connect as"
 	echo "  -W, --password                  Prompt for password"
 	echo "  -d, --dbname=DBNAME             Database to remove language from"
diff --git a/src/bin/scripts/dropuser b/src/bin/scripts/dropuser
index 4aa858124b..e7be5dc867 100644
--- a/src/bin/scripts/dropuser
+++ b/src/bin/scripts/dropuser
@@ -8,7 +8,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.8 2000/11/13 15:18:14 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.9 2000/11/13 23:37:53 momjian Exp $
 #
 # Note - this should NOT be setuid.
 #
@@ -59,15 +59,6 @@ do
         --port=*)
                 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
                 ;;
-	--unixsocket|-k)
-		PSQLOPT="$PSQLOPT -k $2"
-		shift;;
-        -k*)
-                PSQLOPT="$PSQLOPT $1"
-                ;;
-        --unixsocket=*)
-                PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'`
-                ;;
 # Note: These two specify the user to connect as (like in psql),
 #       not the user you're dropping.
 	--username|-U)
@@ -114,7 +105,6 @@ if [ "$usage" ]; then
 	echo "Options:"
 	echo "  -h, --host=HOSTNAME             Database server host"
 	echo "  -p, --port=PORT                 Database server port"
-	echo "  -k, --unixsocket=PATH           Database server Unix-domain socket name"
 	echo "  -U, --username=USERNAME         Username to connect as (not the one to drop)"
 	echo "  -W, --password                  Prompt for password to connect"
 	echo "  -i, --interactive               Prompt before deleting anything"
diff --git a/src/bin/scripts/vacuumdb b/src/bin/scripts/vacuumdb
index fb1db8bfe6..0981f31e72 100644
--- a/src/bin/scripts/vacuumdb
+++ b/src/bin/scripts/vacuumdb
@@ -11,7 +11,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.11 2000/11/13 15:18:14 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.12 2000/11/13 23:37:53 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -52,15 +52,6 @@ do
         --port=*)
                 PSQLOPT="$PSQLOPT -p "`echo $1 | sed 's/^--port=//'`
                 ;;
-	--unixsocket|-k)
-		PSQLOPT="$PSQLOPT -k $2"
-		shift;;
-        -k*)
-                PSQLOPT="$PSQLOPT $1"
-                ;;
-        --unixsocket=*)
-                PSQLOPT="$PSQLOPT -k "`echo $1 | sed 's/^--unixsocket=//'`
-                ;;
 	--username|-U)
 		PSQLOPT="$PSQLOPT -U $2"
 		shift;;
@@ -130,7 +121,6 @@ if [ "$usage" ]; then
         echo "Options:"
 	echo "  -h, --host=HOSTNAME             Database server host"
 	echo "  -p, --port=PORT                 Database server port"
-	echo "  -k, --unixsocket=PATH           Database server Unix-domain socket name"
 	echo "  -U, --username=USERNAME         Username to connect as"
 	echo "  -W, --password                  Prompt for password"
 	echo "  -d, --dbname=DBNAME             Database to vacuum"
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index b0447285d4..9c720c12a1 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.145 2000/11/13 15:18:15 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.146 2000/11/13 23:37:53 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -331,6 +331,25 @@ PQconnectStart(const char *conninfo)
 	 */
 	PQconninfoFree(connOptions);
 
+	/* ----------
+	 * Allow unix socket specification in the host name
+	 * ----------
+	 */
+	if (conn->pghost && conn->pghost[0] == '/')
+	{
+		if (conn->pgunixsocket)
+			free(conn->pgunixsocket);
+		conn->pgunixsocket = conn->pghost;
+		conn->pghost = NULL;
+	}
+	if (conn->pghostaddr && conn->pghostaddr[0] == '/')
+	{
+		if (conn->pgunixsocket)
+			free(conn->pgunixsocket);
+		conn->pgunixsocket = conn->pghostaddr;
+		conn->pghostaddr = NULL;
+	}
+
 	/* ----------
 	 * Connect to the database
 	 * ----------
@@ -443,13 +462,25 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
 	else
 		conn->pgport = strdup(pgport);
 
-#if FIX_ME
-	/* we need to modify the function to accept a unix socket path */
-	if (pgunixsocket)
-		conn->pgunixsocket = strdup(pgunixsocket);
-	else if ((tmp = getenv("PGUNIXSOCKET")) != NULL)
-		conn->pgunixsocket = strdup(tmp);
-#endif
+	/* ----------
+	 * We don't allow unix socket path as a function parameter.
+	 * This allows unix socket specification in the host name.
+	 * ----------
+	 */
+	if (conn->pghost && conn->pghost[0] == '/')
+	{
+		if (conn->pgunixsocket)
+			free(conn->pgunixsocket);
+		conn->pgunixsocket = conn->pghost;
+		conn->pghost = NULL;
+	}
+	if (conn->pghostaddr && conn->pghostaddr[0] == '/')
+	{
+		if (conn->pgunixsocket)
+			free(conn->pgunixsocket);
+		conn->pgunixsocket = conn->pghostaddr;
+		conn->pghostaddr = NULL;
+	}
 
 	if (pgtty == NULL)
 	{
@@ -778,7 +809,7 @@ connectDBStart(PGconn *conn)
 		{
 			printfPQExpBuffer(&conn->errorMessage,
 							  "connectDBStart() -- "
-						 "invalid host address: %s\n", conn->pghostaddr);
+						 	  "invalid host address: %s\n", conn->pghostaddr);
 			goto connect_errReturn;
 		}
 
diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h
index a7c6acb952..5c1cb86ffe 100644
--- a/src/interfaces/libpq/libpq-int.h
+++ b/src/interfaces/libpq/libpq-int.h
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: libpq-int.h,v 1.28 2000/11/13 15:18:15 momjian Exp $
+ * $Id: libpq-int.h,v 1.29 2000/11/13 23:37:54 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -203,8 +203,8 @@ struct pg_conn
 								 * numbers-and-dots notation. Takes
 								 * precedence over above. */
 	char	   *pgport;			/* the server's communication port */
-	char	   *pgunixsocket;		/* the Unix-domain socket that the server is listening on;
-						 * if NULL, uses a default constructed from pgport */
+	char	   *pgunixsocket;	/* the Unix-domain socket that the server is listening on;
+						 		 * if NULL, uses a default constructed from pgport */
 	char	   *pgtty;			/* tty on which the backend messages is
 								 * displayed (NOT ACTUALLY USED???) */
 	char	   *pgoptions;		/* options to start the backend with */