diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 48ad9f6..4ab0939 100644
*** a/doc/src/sgml/config.sgml
--- b/doc/src/sgml/config.sgml
*************** SET ENABLE_SEQSCAN TO OFF;
*** 1966,1971 ****
--- 1966,1994 ----
        </listitem>
       </varlistentry>
  
+      <varlistentry id="guc-vacuum-defer-cleanup-age" xreflabel="vacuum_defer_cleanup_age">
+       <term><varname>vacuum_defer_cleanup_age</varname> (<type>integer</type>)</term>
+       <indexterm>
+        <primary><varname>vacuum_defer_cleanup_age</> configuration parameter</primary>
+       </indexterm>
+       <listitem>
+        <para>
+         Specifies the number of transactions by which <command>VACUUM</> and
+         <acronym>HOT</> updates will defer cleanup of dead row versions. The
+         default is 0 transactions, meaning that dead row versions will be
+         removed as soon as possible. You may wish to set this to a non-zero
+         value when planning or maintaining a <xref linkend="hot-standby">
+         configuration. The recommended value is <literal>0</> unless you have
+         clear reason to increase it. The purpose of the parameter is to
+         allow the user to specify an approximate time delay before cleanup
+         occurs. However, it should be noted that there is no direct link with
+         any specific time delay and so the results will be application and
+         installation specific, as well as variable over time, depending upon
+         the transaction rate (of writes only).
+        </para>
+       </listitem>
+      </varlistentry>
+ 
       </variablelist>
      </sect2>
     </sect1>
*************** COPY postgres_log FROM '/full/path/to/lo
*** 4407,4435 ****
        </listitem>
       </varlistentry>
  
-      <varlistentry id="guc-vacuum-defer-cleanup-age" xreflabel="vacuum_defer_cleanup_age">
-       <term><varname>vacuum_defer_cleanup_age</varname> (<type>integer</type>)</term>
-       <indexterm>
-        <primary><varname>vacuum_defer_cleanup_age</> configuration parameter</primary>
-       </indexterm>
-       <listitem>
-        <para>
-         Specifies the number of transactions by which <command>VACUUM</> and
-         <acronym>HOT</> updates will defer cleanup of dead row versions. The
-         default is 0 transactions, meaning that dead row versions will be
-         removed as soon as possible. You may wish to set this to a non-zero
-         value when planning or maintaining a <xref linkend="hot-standby">
-         configuration. The recommended value is <literal>0</> unless you have
-         clear reason to increase it. The purpose of the parameter is to
-         allow the user to specify an approximate time delay before cleanup
-         occurs. However, it should be noted that there is no direct link with
-         any specific time delay and so the results will be application and
-         installation specific, as well as variable over time, depending upon
-         the transaction rate (of writes only).
-        </para>
-       </listitem>
-      </varlistentry>
- 
       <varlistentry id="guc-bytea-output" xreflabel="bytea_output">
        <term><varname>bytea_output</varname> (<type>enum</type>)</term>
        <indexterm>
--- 4430,4435 ----
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 6597e18..c56ac6a 100644
*** a/src/backend/utils/misc/guc.c
--- b/src/backend/utils/misc/guc.c
*************** const char *const config_group_names[] =
*** 489,502 ****
  	gettext_noop("Resource Usage / Memory"),
  	/* RESOURCES_KERNEL */
  	gettext_noop("Resource Usage / Kernel Resources"),
  	/* WAL */
  	gettext_noop("Write-Ahead Log"),
  	/* WAL_SETTINGS */
  	gettext_noop("Write-Ahead Log / Settings"),
  	/* WAL_CHECKPOINTS */
  	gettext_noop("Write-Ahead Log / Checkpoints"),
  	/* WAL_REPLICATION */
! 	gettext_noop("Write-Ahead Log / Replication"),
  	/* QUERY_TUNING */
  	gettext_noop("Query Tuning"),
  	/* QUERY_TUNING_METHOD */
--- 489,512 ----
  	gettext_noop("Resource Usage / Memory"),
  	/* RESOURCES_KERNEL */
  	gettext_noop("Resource Usage / Kernel Resources"),
+ 	/* RESOURCES_VACUUM_DELAY */
+ 	gettext_noop("Resource Usage / Cost-Based Vacuum Delay"),
+ 	/* RESOURCES_BGWRITER */
+ 	gettext_noop("Resource Usage / Background Writer"),
+ 	/* RESOURCES_ASYNCHRONOUS */
+ 	gettext_noop("Resource Usage / Asynchronous Behavior"),
  	/* WAL */
  	gettext_noop("Write-Ahead Log"),
  	/* WAL_SETTINGS */
  	gettext_noop("Write-Ahead Log / Settings"),
  	/* WAL_CHECKPOINTS */
  	gettext_noop("Write-Ahead Log / Checkpoints"),
+ 	/* WAL_ARCHIVING */
+ 	gettext_noop("Write-Ahead Log / Archiving"),
+ 	/* WAL_STANDBY_SERVERS */
+ 	gettext_noop("Write-Ahead Log / Standby Servers"),
  	/* WAL_REPLICATION */
! 	gettext_noop("Write-Ahead Log / Streaming Replication"),
  	/* QUERY_TUNING */
  	gettext_noop("Query Tuning"),
  	/* QUERY_TUNING_METHOD */
*************** static struct config_bool ConfigureNames
*** 1213,1219 ****
  	},
  
  	{
! 		{"archive_mode", PGC_POSTMASTER, WAL_SETTINGS,
  			gettext_noop("Allows archiving of WAL files using archive_command."),
  			NULL
  		},
--- 1223,1229 ----
  	},
  
  	{
! 		{"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
  			gettext_noop("Allows archiving of WAL files using archive_command."),
  			NULL
  		},
*************** static struct config_bool ConfigureNames
*** 1222,1228 ****
  	},
  
  	{
! 		{"hot_standby", PGC_POSTMASTER, WAL_SETTINGS,
  			gettext_noop("Allows connections and queries during recovery."),
  			NULL
  		},
--- 1232,1238 ----
  	},
  
  	{
! 		{"hot_standby", PGC_POSTMASTER, WAL_STANDBY_SERVERS,
  			gettext_noop("Allows connections and queries during recovery."),
  			NULL
  		},
*************** static struct config_bool ConfigureNames
*** 1271,1277 ****
  static struct config_int ConfigureNamesInt[] =
  {
  	{
! 		{"archive_timeout", PGC_SIGHUP, WAL_SETTINGS,
  			gettext_noop("Forces a switch to the next xlog file if a "
  						 "new file has not been started within N seconds."),
  			NULL,
--- 1281,1287 ----
  static struct config_int ConfigureNamesInt[] =
  {
  	{
! 		{"archive_timeout", PGC_SIGHUP, WAL_ARCHIVING,
  			gettext_noop("Forces a switch to the next xlog file if a "
  						 "new file has not been started within N seconds."),
  			NULL,
*************** static struct config_int ConfigureNamesI
*** 1384,1390 ****
  	},
  
  	{
! 		{"max_standby_delay", PGC_SIGHUP, WAL_SETTINGS,
  			gettext_noop("Sets the maximum delay to avoid conflict processing on hot standby servers."),
  			NULL,
  			GUC_UNIT_MS
--- 1394,1400 ----
  	},
  
  	{
! 		{"max_standby_delay", PGC_SIGHUP, WAL_STANDBY_SERVERS,
  			gettext_noop("Sets the maximum delay to avoid conflict processing on hot standby servers."),
  			NULL,
  			GUC_UNIT_MS
*************** static struct config_int ConfigureNamesI
*** 1477,1483 ****
  	},
  
  	{
! 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES,
  			gettext_noop("Vacuum cost for a page found in the buffer cache."),
  			NULL
  		},
--- 1487,1493 ----
  	},
  
  	{
! 		{"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
  			gettext_noop("Vacuum cost for a page found in the buffer cache."),
  			NULL
  		},
*************** static struct config_int ConfigureNamesI
*** 1486,1492 ****
  	},
  
  	{
! 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES,
  			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
  			NULL
  		},
--- 1496,1502 ----
  	},
  
  	{
! 		{"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
  			gettext_noop("Vacuum cost for a page not found in the buffer cache."),
  			NULL
  		},
*************** static struct config_int ConfigureNamesI
*** 1495,1501 ****
  	},
  
  	{
! 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES,
  			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
  			NULL
  		},
--- 1505,1511 ----
  	},
  
  	{
! 		{"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
  			gettext_noop("Vacuum cost for a page dirtied by vacuum."),
  			NULL
  		},
*************** static struct config_int ConfigureNamesI
*** 1504,1510 ****
  	},
  
  	{
! 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES,
  			gettext_noop("Vacuum cost amount available before napping."),
  			NULL
  		},
--- 1514,1520 ----
  	},
  
  	{
! 		{"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
  			gettext_noop("Vacuum cost amount available before napping."),
  			NULL
  		},
*************** static struct config_int ConfigureNamesI
*** 1513,1519 ****
  	},
  
  	{
! 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES,
  			gettext_noop("Vacuum cost delay in milliseconds."),
  			NULL,
  			GUC_UNIT_MS
--- 1523,1529 ----
  	},
  
  	{
! 		{"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
  			gettext_noop("Vacuum cost delay in milliseconds."),
  			NULL,
  			GUC_UNIT_MS
*************** static struct config_int ConfigureNamesI
*** 1554,1560 ****
  	 * See also CheckRequiredParameterValues() if this parameter changes
  	 */
  	{
! 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES,
  			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
  			NULL
  		},
--- 1564,1570 ----
  	 * See also CheckRequiredParameterValues() if this parameter changes
  	 */
  	{
! 		{"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
  			gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
  			NULL
  		},
*************** static struct config_int ConfigureNamesI
*** 1612,1618 ****
  	},
  
  	{
! 		{"vacuum_defer_cleanup_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
  			gettext_noop("Age by which VACUUM and HOT cleanup should be deferred, if any."),
  			NULL
  		},
--- 1622,1628 ----
  	},
  
  	{
! 		{"vacuum_defer_cleanup_age", PGC_USERSET, WAL_STANDBY_SERVERS,
  			gettext_noop("Age by which VACUUM and HOT cleanup should be deferred, if any."),
  			NULL
  		},
*************** static struct config_int ConfigureNamesI
*** 1790,1796 ****
  	},
  
  	{
! 		{"bgwriter_delay", PGC_SIGHUP, RESOURCES,
  			gettext_noop("Background writer sleep time between rounds."),
  			NULL,
  			GUC_UNIT_MS
--- 1800,1806 ----
  	},
  
  	{
! 		{"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
  			gettext_noop("Background writer sleep time between rounds."),
  			NULL,
  			GUC_UNIT_MS
*************** static struct config_int ConfigureNamesI
*** 1800,1806 ****
  	},
  
  	{
! 		{"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES,
  			gettext_noop("Background writer maximum number of LRU pages to flush per round."),
  			NULL
  		},
--- 1810,1816 ----
  	},
  
  	{
! 		{"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
  			gettext_noop("Background writer maximum number of LRU pages to flush per round."),
  			NULL
  		},
*************** static struct config_int ConfigureNamesI
*** 1815,1821 ****
  #else
  			PGC_INTERNAL,
  #endif
! 			RESOURCES,
  			gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
  			gettext_noop("For RAID arrays, this should be approximately the number of drive spindles in the array.")
  		},
--- 1825,1831 ----
  #else
  			PGC_INTERNAL,
  #endif
! 			RESOURCES_ASYNCHRONOUS,
  			gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
  			gettext_noop("For RAID arrays, this should be approximately the number of drive spindles in the array.")
  		},
*************** static struct config_real ConfigureNames
*** 2143,2149 ****
  	},
  
  	{
! 		{"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES,
  			gettext_noop("Multiple of the average buffer usage to free per round."),
  			NULL
  		},
--- 2153,2159 ----
  	},
  
  	{
! 		{"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
  			gettext_noop("Multiple of the average buffer usage to free per round."),
  			NULL
  		},
*************** static struct config_real ConfigureNames
*** 2197,2203 ****
  static struct config_string ConfigureNamesString[] =
  {
  	{
! 		{"archive_command", PGC_SIGHUP, WAL_SETTINGS,
  			gettext_noop("Sets the shell command that will be called to archive a WAL file."),
  			NULL
  		},
--- 2207,2213 ----
  static struct config_string ConfigureNamesString[] =
  {
  	{
! 		{"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
  			gettext_noop("Sets the shell command that will be called to archive a WAL file."),
  			NULL
  		},
*************** static struct config_string ConfigureNam
*** 2630,2636 ****
  #endif   /* USE_SSL */
  
  	{
! 		{"application_name", PGC_USERSET, LOGGING,
  			gettext_noop("Sets the application name to be reported in statistics and logs."),
  			NULL,
  			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
--- 2640,2646 ----
  #endif   /* USE_SSL */
  
  	{
! 		{"application_name", PGC_USERSET, LOGGING_WHAT,
  			gettext_noop("Sets the application name to be reported in statistics and logs."),
  			NULL,
  			GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 94a4e69..5ea568a 100644
*** a/src/backend/utils/misc/postgresql.conf.sample
--- b/src/backend/utils/misc/postgresql.conf.sample
***************
*** 183,201 ****
  #archive_timeout = 0		# force a logfile segment switch after this
  				# number of seconds; 0 disables
  
! # - Hot Standby -
  
  #hot_standby = off		# allows queries during recovery
  #max_standby_delay = 30s	# max acceptable lag to allow queries to
  				# complete without conflict; -1 means forever
  #vacuum_defer_cleanup_age = 0	# num transactions by which cleanup is deferred
  
- # - Replication -
- 
- #max_wal_senders = 0		# max number of walsender processes
- #wal_sender_delay = 200ms	# 1-10000 milliseconds
- #wal_keep_segments = 0		# in logfile segments, 16MB each; 0 disables
- 
  
  #------------------------------------------------------------------------------
  # QUERY TUNING
--- 183,201 ----
  #archive_timeout = 0		# force a logfile segment switch after this
  				# number of seconds; 0 disables
  
! # - Streaming Replication -
! 
! #max_wal_senders = 0		# max number of walsender processes
! #wal_sender_delay = 200ms	# 1-10000 milliseconds
! #wal_keep_segments = 0		# in logfile segments, 16MB each; 0 disables
! 
! # - Standby Servers -
  
  #hot_standby = off		# allows queries during recovery
  #max_standby_delay = 30s	# max acceptable lag to allow queries to
  				# complete without conflict; -1 means forever
  #vacuum_defer_cleanup_age = 0	# num transactions by which cleanup is deferred
  
  
  #------------------------------------------------------------------------------
  # QUERY TUNING
diff --git a/src/include/utils/guc_tables.h b/src/include/utils/guc_tables.h
index 4989fac..083f003 100644
*** a/src/include/utils/guc_tables.h
--- b/src/include/utils/guc_tables.h
*************** enum config_group
*** 50,58 ****
--- 50,63 ----
  	RESOURCES,
  	RESOURCES_MEM,
  	RESOURCES_KERNEL,
+ 	RESOURCES_VACUUM_DELAY,
+ 	RESOURCES_BGWRITER,
+ 	RESOURCES_ASYNCHRONOUS,
  	WAL,
  	WAL_SETTINGS,
  	WAL_CHECKPOINTS,
+ 	WAL_ARCHIVING,
+ 	WAL_STANDBY_SERVERS,
  	WAL_REPLICATION,
  	QUERY_TUNING,
  	QUERY_TUNING_METHOD,
