diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index 1f9a940aa00880092e5077c27812382971ead710..0413fc11cc51415ee47edc783fdfa8b5010d643b 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.12 2000/06/22 22:31:15 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.13 2000/07/12 17:38:41 petere Exp $
 -->
 
 <Chapter Id="runtime">
@@ -671,6 +671,19 @@ env PGOPTIONS='--geqo=off' psql
 
    <para>
     <variablelist>
+     <varlistentry>
+      <term>DEBUG_ASSERTIONS (<type>boolean</type>)</term>
+      <listitem>
+       <para>
+        Turns on various assertion checks. This is a debugging aid. If
+        you are experiencing strange problems or crashes you might
+        want to turn this on, as it might expose programming mistakes.
+        To use this option, the macro <literal>USE_ASSERT_CHECKING</>
+        must be defined when Postgres is built.
+       </para>
+      </listitem>
+     </varlistentry>
+
      <varlistentry>
       <term>DEBUG_LEVEL (<type>integer</type>)</term>
       <listitem>
@@ -843,13 +856,13 @@ env PGOPTIONS='--geqo=off' psql
      </varlistentry>
 
      <varlistentry>
-      <term>MAX_BACKENDS (<type>integer</type>)</term>
+      <term>MAX_CONNECTIONS (<type>integer</type>)</term>
       <listitem>
        <para>
         Determines how many concurrent connections the database server
-        will allow. The default is 32. Note that there is also a
-        compiled-in hard limit on this option, which is currently
-        1024. This parameter can only be set at server start.
+        will allow. The default is 32. There is also a compiled-in
+        hard upper limit on this option, which is currently 1024. This
+        parameter can only be set at server start.
        </para>
       </listitem>
      </varlistentry>
@@ -868,7 +881,7 @@ env PGOPTIONS='--geqo=off' psql
      </varlistentry>
 
      <varlistentry>
-      <term>NET_SERVER (<type>boolean</type>)</term>
+      <term>TCPIP_SOCKET (<type>boolean</type>)</term>
       <listitem>
        <para>
         If this is true, then the server will accept TCP/IP
@@ -922,12 +935,12 @@ env PGOPTIONS='--geqo=off' psql
         This controls the inheritance semantics, in particular whether
         subtables are included into the consideration of various
         commands by default. This was not the case in versions prior
-        to 7.1. If you need this behaviour you can set this variable
-        to off, but in the long run you are encouraged to change your
-        applications to use the <literal>ONLY</literal> keyword to
-        exclude subtables. See the SQL language reference and the
-        <citetitle>User's Guide</citetitle> for more information about
-        inheritance.
+        to 7.1. If you need the old behaviour you can set this
+        variable to off, but in the long run you are encouraged to
+        change your applications to use the <literal>ONLY</literal>
+        keyword to exclude subtables. See the SQL language reference
+        and the <citetitle>User's Guide</citetitle> for more
+        information about inheritance.
        </para>
       </listitem>
      </varlistentry>
@@ -971,12 +984,12 @@ env PGOPTIONS='--geqo=off' psql
        </row>
        <row>
         <entry>-i</entry>
-        <entry>net_server = on</entry>
+        <entry>tcpip_socket = on</entry>
         <entry></entry>
        </row>
        <row>
         <entry>-N <replaceable>x</replaceable></entry>
-        <entry>max_backends = <replaceable>x</replaceable></entry>
+        <entry>max_connections = <replaceable>x</replaceable></entry>
         <entry></entry>
        </row>
        <row>
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 580786c2e698ee2e4891621463fc728769e30899..fe6b7b14557ee9aa00041b39dd6fe946e6d83a33 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.154 2000/07/09 13:14:05 petere Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.155 2000/07/12 17:38:42 petere Exp $
  *
  * NOTES
  *
@@ -280,11 +280,6 @@ void		GetCharSetByHost(char *, int, char *);
 
 #endif
 
-#ifdef USE_ASSERT_CHECKING
-
-int			assert_enabled = 1;
-
-#endif
 
 static void
 checkDataDir(const char *DataDir)
@@ -387,13 +382,46 @@ PostmasterMain(int argc, char *argv[])
 	 * will occur.
 	 */
 	opterr = 1;
-	while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:")) != EOF)
+	while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:?")) != EOF)
 	{
-		if (opt == 'D')
+		switch(opt)
 		{
-			if (DataDir)
-				free(DataDir);
-			DataDir = strdup(optarg);
+			case 'D':
+				if (DataDir)
+					free(DataDir);
+				DataDir = strdup(optarg);
+				break;
+
+			case '-':
+			{
+				char *name, *value;
+			
+				ParseLongOption(optarg, &name, &value);
+				if (strcmp(name, "help")==0)
+				{
+					usage(progname);
+					exit(0);
+				}
+				else if (strcmp(name, "version")==0)
+				{
+					puts("postmaster (PostgreSQL) " PG_VERSION);
+					exit(0);
+				}
+				break;
+			}
+
+			case '?':
+				if (strcmp(argv[optind - 1], "-?") == 0)
+				{
+					usage(progname);
+					exit(0);
+				}
+				else
+				{
+					fprintf(stderr, "Try -? for help.\n");
+					exit(1);
+				}
+				break;
 		}
 	}
 
@@ -403,21 +431,15 @@ PostmasterMain(int argc, char *argv[])
 	ProcessConfigFile(PGC_POSTMASTER);
 
 	IgnoreSystemIndexes(false);
-	while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:")) != EOF)
+	while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:?")) != EOF)
 	{
 		switch (opt)
 		{
 			case 'A':
 #ifndef USE_ASSERT_CHECKING
-				fprintf(stderr, "Assert checking is not enabled\n");
+				fprintf(stderr, "Assert checking is not compiled in\n");
 #else
-
-				/*
-				 * Pass this option also to each backend.
-				 */
 				assert_enabled = atoi(optarg);
-				strcat(ExtraOptions, " -A ");
-				strcat(ExtraOptions, optarg);
 #endif
 				break;
 			case 'a':
@@ -525,13 +547,23 @@ PostmasterMain(int argc, char *argv[])
 					free(value);
 				break;
 			}
+
 			default:
-				/* usage() never returns */
-				usage(progname);
-				break;
+				/* shouldn't get here */
+				fprintf(stderr, "Try -? for help.\n");
+				exit(1);
 		}
 	}
 
+	/*
+	 * Non-option switch arguments don't exist.
+	 */
+	if (optind < argc)
+	{
+		fprintf(stderr, "%s: invalid argument -- %s\n", progname, argv[optind]);
+		exit(1);
+	}
+
 	/*
 	 * Check for invalid combinations of switches
 	 */
@@ -543,7 +575,7 @@ PostmasterMain(int argc, char *argv[])
 		 * for lack of buffers.  The specific choices here are somewhat
 		 * arbitrary.
 		 */
-		fprintf(stderr, "%s: -B must be at least twice -N and at least 16.\n",
+		fprintf(stderr, "%s: The number of buffers (-B) must be at least twice the number of allowed connections (-N) and at least 16.\n",
 				progname);
 		exit(1);
 	}
@@ -717,30 +749,43 @@ pmdaemonize(int argc, char *argv[])
 	on_proc_exit(UnlinkPidFile, NULL);
 }
 
+
+
+/*
+ * Print out help message
+ */
 static void
 usage(const char *progname)
 {
-	fprintf(stderr, "usage: %s [options]\n", progname);
+	printf("%s is the PostgreSQL server.\n\n", progname);
+	printf("Usage:\n  %s [options]\n\n", progname);
+	printf("Options:\n");
 #ifdef USE_ASSERT_CHECKING
-	fprintf(stderr, "\t-A [1|0]\tenable/disable runtime assert checking\n");
+	printf("  -A 1|0          enable/disable runtime assert checking\n");
 #endif
-	fprintf(stderr, "\t-B nbufs\tset number of shared buffers\n");
-	fprintf(stderr, "\t-D datadir\tset data directory\n");
-	fprintf(stderr, "\t-S \t\tsilent mode (disassociate from tty)\n");
-	fprintf(stderr, "\t-a system\tuse this authentication system\n");
-	fprintf(stderr, "\t-b backend\tuse a specific backend server executable\n");
-	fprintf(stderr, "\t-d [1-5]\tset debugging level\n");
-	fprintf(stderr, "\t-i \t\tlisten on TCP/IP sockets as well as Unix domain socket\n");
+	printf("  -B <buffers>    number of shared buffers\n");
+	printf("  -d 1-5          debugging level\n");
+	printf("  -D <directory>  database directory\n");
+	printf("  -F              turn fsync off\n");
+	printf("  -i              listen on TCP/IP sockets\n");
 #ifdef USE_SSL
-	fprintf(stderr, " \t-l \t\tfor TCP/IP sockets, listen only on SSL connections\n");
+	printf("  -l              listen only on SSL connections (EXPERIMENTAL)\n");
 #endif
-	fprintf(stderr, "\t-N nprocs\tset max number of backends (1..%d, default %d)\n",
+	printf("  -N <number>     maximum number of allowed connections (1..%d, default %d)\n",
 			MAXBACKENDS, DEF_MAXBACKENDS);
-	fprintf(stderr, "\t-n \t\tdon't reinitialize shared memory after abnormal exit\n");
-	fprintf(stderr, "\t-o option\tpass 'option' to each backend servers\n");
-	fprintf(stderr, "\t-p port\tspecify port for postmaster to listen on\n");
-	fprintf(stderr, "\t-s \t\tsend SIGSTOP to all backend servers if one dies\n");
-	exit(1);
+	printf("  -o <option>     pass `option' to each backend server\n");
+	printf("  -p <port>       port number to listen on\n");
+	printf("  -S              silent mode (dissociate from tty)\n");
+
+	printf("\nDeveloper options:\n");
+	printf("  -n              don't reinitialize shared memory after abnormal exit\n");
+	printf("  -s              send SIGSTOP to all backend servers if one dies\n");
+
+	printf("\nPlease read the documentation for the complete list of runtime\n"
+		   "configuration settings and how to set them on the command line or in\n"
+		   "the configuration file.\n\n");
+
+	printf("Report bugs to <pgsql-bugs@postgresql.org>.\n");
 }
 
 static int
@@ -1231,7 +1276,7 @@ reset_shared(int port)
 
 
 /*
- * set flag is SIGHUP was detected so config file can be reread in
+ * Set flag if SIGHUP was detected so config file can be reread in
  * main loop
  */
 static void
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 3c672d8f4b289a723389eaf93cf2e58a9327ac84..fce4e2cc28347a5905b2b014699a33c94487ceb6 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.168 2000/07/11 14:30:27 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.169 2000/07/12 17:38:45 petere Exp $
  *
  * NOTES
  *	  this is the "main" module of the postgres backend and
@@ -907,14 +907,10 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 		switch (flag)
 		{
 			case 'A':
-				/* ----------------
-				 *	enable/disable assert checking.
-				 * ----------------
-				 */
 #ifdef USE_ASSERT_CHECKING
 				assert_enabled = atoi(optarg);
 #else
-				fprintf(stderr, "Assert checking is not enabled\n");
+				fprintf(stderr, "Assert checking is not compiled in\n");
 #endif
 				break;
 
@@ -1415,7 +1411,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
 	if (!IsUnderPostmaster)
 	{
 		puts("\nPOSTGRES backend interactive interface ");
-		puts("$Revision: 1.168 $ $Date: 2000/07/11 14:30:27 $\n");
+		puts("$Revision: 1.169 $ $Date: 2000/07/12 17:38:45 $\n");
 	}
 
 	/*
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 44078e4a9213d1c78aa84c2a9db008073f3275e9..fc0874d1cacae09d2cdcd1dcbd1782e882bf8942 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -4,7 +4,7 @@
  * Support for grand unified configuration scheme, including SET
  * command, configuration file, and command line options.
  *
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.5 2000/07/03 20:46:05 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.6 2000/07/12 17:38:48 petere Exp $
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  * Written by Peter Eisentraut <peter_e@gmx.net>.
@@ -37,6 +37,9 @@ extern bool Log_connections;
 /*
  * Debugging options
  */
+#ifdef USE_ASSERT_CHECKING
+bool assert_enabled;
+#endif
 bool Debug_print_query      = false;
 bool Debug_print_plan       = false;
 bool Debug_print_parse      = false;
@@ -150,13 +153,17 @@ ConfigureNamesBool[] =
 	{"ksqo",                    PGC_USERSET,    &_use_keyset_query_optimizer, false},
 	{"geqo",                    PGC_USERSET,    &enable_geqo,           true},
 
-	{"net_server",              PGC_POSTMASTER, &NetServer,             false},
+	{"tcpip_socket",            PGC_POSTMASTER, &NetServer,             false},
 	{"fsync",                   PGC_USERSET,    &enableFsync,           true},
 
 	{"log_connections",         PGC_SIGHUP,     &Log_connections,       false},
 	{"log_timestamp",           PGC_SIGHUP,     &Log_timestamp,         false},
 	{"log_pid",                 PGC_SIGHUP,     &Log_pid,               false},
 
+#ifdef USE_ASSERT_CHECKING
+	{"debug_assertions",        PGC_USERSET,    &assert_enabled,        false},
+#endif
+
 	{"debug_print_query",       PGC_USERSET,    &Debug_print_query,     false},
 	{"debug_print_parse",       PGC_USERSET,    &Debug_print_parse,     false},
 	{"debug_print_rewritten",   PGC_USERSET,    &Debug_print_rewritten, false},
@@ -216,7 +223,7 @@ ConfigureNamesInt[] =
 	 * make sure the buffers are at least twice the number of
 	 * backends, so the constraints here are partially unused.
 	 */
-	{"max_backends",            PGC_POSTMASTER,         &MaxBackends,
+	{"max_connections",         PGC_POSTMASTER,         &MaxBackends,
 	 DEF_MAXBACKENDS, 1, MAXBACKENDS},
 	{"shmem_buffers",           PGC_POSTMASTER,         &NBuffers,
 	 DEF_NBUFFERS, 16, INT_MAX},
diff --git a/src/include/c.h b/src/include/c.h
index 250a8c6db164f98928b1928431201bcce6ca79df..18bdda5e781b03c152cdbd5494a13bf32d567552 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: c.h,v 1.76 2000/07/07 21:12:47 tgl Exp $
+ * $Id: c.h,v 1.77 2000/07/12 17:38:53 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -706,7 +706,7 @@ typedef struct Exception
 #define AssertState(condition) \
 		Trap(!(condition), BadState)
 
-extern int	assert_enabled;
+extern bool	assert_enabled;
 
 #endif	 /* USE_ASSERT_CHECKING */