diff --git a/doc/src/sgml/ref/pg_ctl-ref.sgml b/doc/src/sgml/ref/pg_ctl-ref.sgml
index 2d0b8a33ee29872d0cc41b32f3489b4af45631cb..638f3f18714af2d3c4ea0dd8e63cffe778905ffb 100644
--- a/doc/src/sgml/ref/pg_ctl-ref.sgml
+++ b/doc/src/sgml/ref/pg_ctl-ref.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.45 2008/04/23 13:44:58 mha Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.46 2008/06/26 01:12:19 momjian Exp $
 PostgreSQL documentation
 -->
 
@@ -405,20 +405,6 @@ PostgreSQL documentation
     </listitem>
    </varlistentry>
 
-   <varlistentry>
-    <term><filename>postmaster.opts.default</filename></term>
-
-    <listitem>
-     <para>
-      If this file exists in the data directory,
-      <application>pg_ctl</application> (in <option>start</option>
-      mode) will pass the contents of the file as options to the
-      <command>postgres</command> command, unless overridden by the
-      <option>-o</option> option.
-     </para>
-    </listitem>
-   </varlistentry>
-
    <varlistentry>
     <term><filename>postmaster.opts</filename></term>
 
diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c
index 6e0cd1a6654dfdec58abeace95830237bab18a56..a4684cf74f04c15149c2e5083c07520be9facd79 100644
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -4,7 +4,7 @@
  *
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.98 2008/04/24 14:23:43 mha Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.99 2008/06/26 01:12:20 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -140,7 +140,6 @@ static void read_post_opts(void);
 static bool test_postmaster_connection(bool);
 static bool postmaster_is_alive(pid_t pid);
 
-static char def_postopts_file[MAXPGPATH];
 static char postopts_file[MAXPGPATH];
 static char pid_file[MAXPGPATH];
 static char conf_file[MAXPGPATH];
@@ -575,42 +574,35 @@ unlimit_core_size(void)
 static void
 read_post_opts(void)
 {
-	char	   *optline = NULL;
-
 	if (post_opts == NULL)
 	{
 		char	  **optlines;
-		int			len;
 
-		optlines = readfile(ctl_command == RESTART_COMMAND ?
-							postopts_file : def_postopts_file);
-		if (optlines == NULL)
+		post_opts = "";		/* defatult */
+		if (ctl_command == RESTART_COMMAND)
 		{
-			if (ctl_command == START_COMMAND || ctl_command == RUN_AS_SERVICE_COMMAND)
-				post_opts = "";
-			else
+			optlines = readfile(postopts_file);
+			if (optlines == NULL)
 			{
 				write_stderr(_("%s: could not read file \"%s\"\n"), progname, postopts_file);
 				exit(1);
 			}
-		}
-		else if (optlines[0] == NULL || optlines[1] != NULL)
-		{
-			write_stderr(_("%s: option file \"%s\" must have exactly one line\n"),
-						 progname, ctl_command == RESTART_COMMAND ?
-						 postopts_file : def_postopts_file);
-			exit(1);
-		}
-		else
-		{
-			optline = optlines[0];
-			len = strcspn(optline, "\r\n");
-			optline[len] = '\0';
-
-			if (ctl_command == RESTART_COMMAND)
+			else if (optlines[0] == NULL || optlines[1] != NULL)
 			{
+				write_stderr(_("%s: option file \"%s\" must have exactly one line\n"),
+							 progname, postopts_file);
+				exit(1);
+			}
+			else
+			{
+				int			len;
+				char	   *optline = NULL;
 				char	   *arg1;
 
+				optline = optlines[0];
+				len = strcspn(optline, "\r\n");
+				optline[len] = '\0';
+
 				arg1 = strchr(optline, *SYSTEMQUOTE);
 				if (arg1 == NULL || arg1 == optline)
 					post_opts = "";
@@ -622,8 +614,6 @@ read_post_opts(void)
 				if (postgres_path != NULL)
 					postgres_path = optline;
 			}
-			else
-				post_opts = optline;
 		}
 	}
 }
@@ -1894,7 +1884,6 @@ main(int argc, char **argv)
 
 	if (pg_data)
 	{
-		snprintf(def_postopts_file, MAXPGPATH, "%s/postmaster.opts.default", pg_data);
 		snprintf(postopts_file, MAXPGPATH, "%s/postmaster.opts", pg_data);
 		snprintf(pid_file, MAXPGPATH, "%s/postmaster.pid", pg_data);
 		snprintf(conf_file, MAXPGPATH, "%s/postgresql.conf", pg_data);