diff --git a/doc/src/sgml/ref/postgres-ref.sgml b/doc/src/sgml/ref/postgres-ref.sgml
index 9869a1f5262c2d1c8a43167d498163631edda41c..d8e9825d13ebb335bf870a5c74d14561fb4f9800 100644
--- a/doc/src/sgml/ref/postgres-ref.sgml
+++ b/doc/src/sgml/ref/postgres-ref.sgml
@@ -144,13 +144,20 @@ PostgreSQL documentation
       <term><option>-C <replaceable>name</replaceable></option></term>
       <listitem>
        <para>
-        Returns the value of a named run-time parameter, and exits.
+        Prints the value of the named run-time parameter, and exits.
         (See the <option>-c</> option above for details.)  This can
         be used on a running server, and returns values from
         <filename>postgresql.conf</>, modified by any parameters
         supplied in this invocation.  It does not reflect parameters
         supplied when the cluster was started.
        </para>
+
+       <para>
+        This option is meant for other programs that interact with a server
+        instance, such as <xref linkend="app-pg-ctl">, to query configuration
+        parameter values.  User-facing applications should instead use <xref
+        linkend="sql-show"> or the <structname>pg_settings</structname> view.
+       </para>
       </listitem>
      </varlistentry>
 
diff --git a/src/backend/main/main.c b/src/backend/main/main.c
index a63ebe3d108986584782c256e358d9bd77299248..7203481a04b7ffb003c5bf32e35307aa80c5aa44 100644
--- a/src/backend/main/main.c
+++ b/src/backend/main/main.c
@@ -279,7 +279,7 @@ help(const char *progname)
 #endif
 	printf(_("  -B NBUFFERS        number of shared buffers\n"));
 	printf(_("  -c NAME=VALUE      set run-time parameter\n"));
-	printf(_("  -C NAME            return run-time parameter\n"));
+	printf(_("  -C NAME            print value of run-time parameter, then exit\n"));
 	printf(_("  -d 1-5             debugging level\n"));
 	printf(_("  -D DATADIR         database directory\n"));
 	printf(_("  -e                 use European date input format (DMY)\n"));