diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index e55b503..04bc671 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -5324,6 +5324,19 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
       </listitem>
      </varlistentry>
 
+     <varlistentry id="guc-client-message" xreflabel="client_message">
+      <term><varname>client_message</varname> (<type>string</type>)</term>
+      <indexterm>
+       <primary><varname>client_message</> configuration parameter</primary>
+      </indexterm>
+      <listitem>
+       <para>
+        The <varname>client_message</varname> can be any string that will be 
+        displayed to the user in the banner of psql. 
+       </para>
+      </listitem>
+     </varlistentry>
+
      </variablelist>
     </sect2>
    </sect1>
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 72c9384..7dcb0bb 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -1487,6 +1487,7 @@ const char *PQparameterStatus(const PGconn *conn, const char *paramName);
        <varname>server_encoding</>,
        <varname>client_encoding</>,
        <varname>application_name</>,
+       <varname>client_message</>,
        <varname>is_superuser</>,
        <varname>session_authorization</>,
        <varname>DateStyle</>,
@@ -1499,7 +1500,8 @@ const char *PQparameterStatus(const PGconn *conn, const char *paramName);
        <varname>standard_conforming_strings</> was not reported by releases
        before 8.1;
        <varname>IntervalStyle</> was not reported by releases before 8.4;
-       <varname>application_name</> was not reported by releases before 9.0.)
+       <varname>application_name</> was not reported by releases before 9.0;
+       <varname>client_message</> was not reported by releases before 9.2.)
        Note that
        <varname>server_version</>,
        <varname>server_encoding</> and
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 9fc96b2..39177cc 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -455,6 +455,7 @@ static char *log_destination_string;
 static char *syslog_ident_str;
 static bool phony_autocommit;
 static bool session_auth_is_superuser;
+static char *client_message_string;
 static double phony_random_seed;
 static char *client_encoding_string;
 static char *datestyle_string;
@@ -3018,6 +3019,17 @@ static struct config_string ConfigureNamesString[] =
 		check_application_name, assign_application_name, NULL
 	},
 
+        {
+                {"client_message", PGC_BACKEND, CLIENT_CONN_OTHER,
+                        gettext_noop("Sets a message to be displayed to the user when connecting via psql."),
+                        NULL,
+                        GUC_REPORT | GUC_NO_SHOW_ALL
+                },
+                &client_message_string,
+                "",
+                NULL, NULL, NULL
+        },
+
 	/* End-of-list marker */
 	{
 		{NULL, 0, 0, NULL, NULL}, NULL, NULL, NULL, NULL, NULL
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 315db46..8eb5af5 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -515,6 +515,7 @@
 
 #dynamic_library_path = '$libdir'
 #local_preload_libraries = ''
+#client_message = ''
 
 
 #------------------------------------------------------------------------------
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 6c3f0aa..cd90a64 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -1653,6 +1653,8 @@ do_connect(char *dbname, char *user, char *host, char *port)
 		else
 			printf(_("You are now connected to database \"%s\" as user \"%s\".\n"),
 				   PQdb(pset.db), PQuser(pset.db));
+
+		printClientMessage();
 	}
 
 	if (o_conn)
@@ -1707,6 +1709,23 @@ connection_warnings(bool in_startup)
 
 
 /*
+ * printClientMessage
+ *
+ * Prints any message stored in the client_message GUC
+ */
+void
+printClientMessage(void)
+{
+	const char *message;
+
+	message = PQparameterStatus(pset.db, "client_message");
+
+	if (message)
+		printf(_("%s\n"), message);
+}
+
+
+/*
  * printSSLInfo
  *
  * Prints information about the current SSL connection, if SSL is in use
diff --git a/src/bin/psql/command.h b/src/bin/psql/command.h
index f0bcea0..0e37386 100644
--- a/src/bin/psql/command.h
+++ b/src/bin/psql/command.h
@@ -36,6 +36,8 @@ extern bool do_pset(const char *param,
 
 extern void connection_warnings(bool in_startup);
 
+extern void printClientMessage(void);
+
 extern void SyncVariables(void);
 
 extern void UnsyncVariables(void);
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 8b1864c..b04daa1 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -302,7 +302,10 @@ main(int argc, char *argv[])
 
 		connection_warnings(true);
 		if (!pset.quiet && !pset.notty)
+		{
 			printf(_("Type \"help\" for help.\n\n"));
+			printClientMessage();
+		}
 		if (!pset.notty)
 			initializeInput(options.no_readline ? 0 : 1);
 		if (options.action_string)		/* -f - was used */
