diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 212dbfa154c595222b2f8a0d85f724e0433fe5a5..5899bb4fb3918630df45254727ec39ce12bcfc42 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -2038,14 +2038,15 @@ lo_import 152801
           The <replaceable class="parameter">value</replaceable> must be a
           number. In general, the higher
           the number the more borders and lines the tables will have,
-          but this depends on the particular format. In
-          <acronym>HTML</acronym> format, this will translate directly
-          into the <literal>border=...</literal> attribute; in
-          <literal>latex</literal> and <literal>latex-longtable</literal>
-          formats, a value of 3 will add a dividing line between each row; in
-          the other formats only values 0 (no border), 1 (internal dividing
-          lines), and 2 (table frame) make sense and values above 2 will be
-          treated the same as <literal>border = 2</literal>.
+          but details depend on the particular format.
+          In <acronym>HTML</acronym> format, this will translate directly
+          into the <literal>border=...</literal> attribute.
+          In most other formats only values 0 (no border), 1 (internal
+          dividing lines), and 2 (table frame) make sense, and values above 2
+          will be treated the same as <literal>border = 2</literal>.
+          The <literal>latex</literal> and <literal>latex-longtable</literal>
+          formats additionally allow a value of 3 to add dividing lines
+          between data rows.
           </para>
           </listitem>
           </varlistentry>
@@ -2220,8 +2221,8 @@ lo_import 152801
 
           <para>
           When the <literal>border</> setting is greater than zero,
-          this option also determines the characters
-          with which the border lines are drawn.
+          the <literal>linestyle</literal> option also determines the
+          characters with which the border lines are drawn.
           Plain <acronym>ASCII</acronym> characters work everywhere, but
           Unicode characters look nicer on displays that recognize them.
           </para>
@@ -2364,31 +2365,34 @@ lo_import 152801
           </varlistentry>
 
           <varlistentry>
-          <term><literal>unicode_border_style</literal></term>
+          <term><literal>unicode_border_linestyle</literal></term>
           <listitem>
           <para>
-          Sets the border drawing style for the <literal>unicode</literal> line style to one
-          of <literal>single</literal> or <literal>double</literal>.
+          Sets the border drawing style for the <literal>unicode</literal>
+          line style to one of <literal>single</literal>
+          or <literal>double</literal>.
           </para>
           </listitem>
           </varlistentry>
 
           <varlistentry>
-          <term><literal>unicode_column_style</literal></term>
+          <term><literal>unicode_column_linestyle</literal></term>
           <listitem>
           <para>
-          Sets the column drawing style for the <literal>unicode</literal> line style to one
-          of <literal>single</literal> or <literal>double</literal>.
+          Sets the column drawing style for the <literal>unicode</literal>
+          line style to one of <literal>single</literal>
+          or <literal>double</literal>.
           </para>
           </listitem>
           </varlistentry>
 
           <varlistentry>
-          <term><literal>unicode_header_style</literal></term>
+          <term><literal>unicode_header_linestyle</literal></term>
           <listitem>
           <para>
-          Sets the header drawing style for the <literal>unicode</literal> line style to one
-          of <literal>single</literal> or <literal>double</literal>.
+          Sets the header drawing style for the <literal>unicode</literal>
+          line style to one of <literal>single</literal>
+          or <literal>double</literal>.
           </para>
           </listitem>
           </varlistentry>
diff --git a/doc/src/sgml/release-9.5.sgml b/doc/src/sgml/release-9.5.sgml
index 92443e43c193d9bc0831a4c299b8a7fb37aa088d..9055387832a2017d76709f93ee5328ceb6525a1b 100644
--- a/doc/src/sgml/release-9.5.sgml
+++ b/doc/src/sgml/release-9.5.sgml
@@ -2061,12 +2061,12 @@ FIXME: Add more specifics?
 2014-09-12 [a2dabf0] Stephe..: Add unicode_{column|header|border}_style to psql
 -->
         <para>
-         Allow column, header, and border control to <application>psql</>'s
-         Unicode style (Pavel Stehule)
+         Provide separate column, header, and border linestyle control
+         in <application>psql</>'s unicode linestyle (Pavel Stehule)
         </para>
 
         <para>
-         Single or double output is supported;  the default is
+         Single or double lines are supported; the default is
          <literal>single</>.
         </para>
        </listitem>
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 50d3ff51745999cc6865cd670c6a12331c34db6a..72c00c1251c671e42c2982aca11ddade246013f2 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -2415,11 +2415,11 @@ _align2string(enum printFormat in)
 }
 
 /*
- * Parse entered unicode linestyle. Returns true, when entered string is
- * known linestyle: single, double else returns false.
+ * Parse entered unicode linestyle.  If ok, update *linestyle and return
+ * true, else return false.
  */
 static bool
-set_unicode_line_style(printQueryOpt *popt, const char *value, size_t vallen,
+set_unicode_line_style(const char *value, size_t vallen,
 					   unicode_linestyle *linestyle)
 {
 	if (pg_strncasecmp("single", value, vallen) == 0)
@@ -2428,10 +2428,6 @@ set_unicode_line_style(printQueryOpt *popt, const char *value, size_t vallen,
 		*linestyle = UNICODE_LINESTYLE_DOUBLE;
 	else
 		return false;
-
-	/* input is ok, generate new unicode style */
-	refresh_utf8format(&(popt->topt));
-
 	return true;
 }
 
@@ -2517,10 +2513,12 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
 	{
 		if (!value)
 			;
-		else if (!set_unicode_line_style(popt, value, vallen,
-									   &popt->topt.unicode_border_linestyle))
+		else if (set_unicode_line_style(value, vallen,
+										&popt->topt.unicode_border_linestyle))
+			refresh_utf8format(&(popt->topt));
+		else
 		{
-			psql_error("\\pset: allowed unicode border linestyle are single, double\n");
+			psql_error("\\pset: allowed unicode border linestyles are single, double\n");
 			return false;
 		}
 	}
@@ -2530,10 +2528,12 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
 	{
 		if (!value)
 			;
-		else if (!set_unicode_line_style(popt, value, vallen,
-									   &popt->topt.unicode_column_linestyle))
+		else if (set_unicode_line_style(value, vallen,
+										&popt->topt.unicode_column_linestyle))
+			refresh_utf8format(&(popt->topt));
+		else
 		{
-			psql_error("\\pset: allowed unicode column linestyle are single, double\n");
+			psql_error("\\pset: allowed unicode column linestyles are single, double\n");
 			return false;
 		}
 	}
@@ -2543,10 +2543,12 @@ do_pset(const char *param, const char *value, printQueryOpt *popt, bool quiet)
 	{
 		if (!value)
 			;
-		else if (!set_unicode_line_style(popt, value, vallen,
-									   &popt->topt.unicode_header_linestyle))
+		else if (set_unicode_line_style(value, vallen,
+										&popt->topt.unicode_header_linestyle))
+			refresh_utf8format(&(popt->topt));
+		else
 		{
-			psql_error("\\pset: allowed unicode header linestyle are single, double\n");
+			psql_error("\\pset: allowed unicode header linestyles are single, double\n");
 			return false;
 		}
 	}
@@ -2871,7 +2873,7 @@ printPsetInfo(const char *param, struct printQueryOpt *popt)
 
 	else if (strcmp(param, "unicode_header_linestyle") == 0)
 	{
-		printf(_("Unicode border linestyle is \"%s\".\n"),
+		printf(_("Unicode header linestyle is \"%s\".\n"),
 			 _unicode_linestyle2string(popt->topt.unicode_header_linestyle));
 	}