diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 4f3ef5c..11a6ed2 100644
*** a/doc/src/sgml/ref/psql-ref.sgml
--- b/doc/src/sgml/ref/psql-ref.sgml
*************** testdb=&gt;
*** 781,786 ****
--- 781,796 ----
        </varlistentry>
  
        <varlistentry>
+         <term><literal>\conninfo</literal></term>
+         <listitem>
+         <para>
+         Outputs connection information about the current database
+         connection.
+         </para>
+         </listitem>
+       </varlistentry>
+ 
+       <varlistentry>
          <term><literal>\copy { <replaceable class="parameter">table</replaceable> [ ( <replaceable class="parameter">column_list</replaceable> ) ] | ( <replaceable class="parameter">query</replaceable> ) }
          { <literal>from</literal> | <literal>to</literal> }
          { <replaceable class="parameter">filename</replaceable> | stdin | stdout | pstdin | pstdout }
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 35a0800..eba9861 100644
*** a/src/bin/psql/command.c
--- b/src/bin/psql/command.c
*************** exec_command(const char *cmd,
*** 294,299 ****
--- 294,323 ----
  			free(opt);
  	}
  
+ 	/* \conninfo -- display information about the current connection	*/
+ 	else if (strcmp(cmd, "conninfo") == 0)
+ 	{
+ 		char	   *host = PQhost(pset.db);
+ 
+ 		if (host)
+         {
+ 			printf("Connected to database: \"%s\", user: \"%s\", host: \"%s\", port: %s\n",
+ 				   PQdb(pset.db),
+ 				   PQuser(pset.db),
+ 				   host,
+ 				   PQport(pset.db)
+ 				);
+ 		}
+ 		else
+         {
+ 			printf("Connected to database: \"%s\", user: \"%s\", port: %s via local domain socket\n",
+ 				   PQdb(pset.db),
+ 				   PQuser(pset.db),
+ 				   PQport(pset.db)
+ 				);
+ 		}
+ 	}
+ 
  	/* \copy */
  	else if (pg_strcasecmp(cmd, "copy") == 0)
  	{
diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c
index 09a348f..19c807d 100644
*** a/src/bin/psql/help.c
--- b/src/bin/psql/help.c
*************** slashUsage(unsigned short int pager)
*** 162,168 ****
  {
  	FILE	   *output;
  
! 	output = PageOutput(86, pager);
  
  	/* if you add/remove a line here, change the row count above */
  
--- 162,168 ----
  {
  	FILE	   *output;
  
! 	output = PageOutput(87, pager);
  
  	/* if you add/remove a line here, change the row count above */
  
*************** slashUsage(unsigned short int pager)
*** 249,254 ****
--- 249,255 ----
  			PQdb(pset.db));
  	fprintf(output, _("  \\encoding [ENCODING]   show or set client encoding\n"));
  	fprintf(output, _("  \\password [USERNAME]   securely change the password for a user\n"));
+ 	fprintf(output, _("  \\conninfo              display information about current connection\n"));
  	fprintf(output, "\n");
  
  	fprintf(output, _("Operating System\n"));
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index f806a74..b43c478 100644
*** a/src/bin/psql/tab-complete.c
--- b/src/bin/psql/tab-complete.c
*************** psql_completion(char *text, int start, i
*** 636,642 ****
  	};
  
  	static const char *const backslash_commands[] = {
! 		"\\a", "\\connect", "\\C", "\\cd", "\\copy", "\\copyright",
  		"\\d", "\\da", "\\db", "\\dc", "\\dC", "\\dd", "\\dD", "\\des", "\\deu", "\\dew", "\\df",
  		"\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl",
  		"\\dn", "\\do", "\\dp", "\\drds", "\\ds", "\\dS", "\\dt", "\\dT", "\\dv", "\\du",
--- 636,642 ----
  	};
  
  	static const char *const backslash_commands[] = {
! 		"\\a", "\\connect", "\\conninfo", "\\C", "\\cd", "\\copy", "\\copyright",
  		"\\d", "\\da", "\\db", "\\dc", "\\dC", "\\dd", "\\dD", "\\des", "\\deu", "\\dew", "\\df",
  		"\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl",
  		"\\dn", "\\do", "\\dp", "\\drds", "\\ds", "\\dS", "\\dt", "\\dT", "\\dv", "\\du",
