diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c
index fc44c4398df882858718e8da7275458ffe7052bc..001e206a96c76fceebf5ca49178b780c8079fe34 100644
--- a/src/backend/postmaster/syslogger.c
+++ b/src/backend/postmaster/syslogger.c
@@ -18,7 +18,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.38 2007/08/21 01:47:19 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.39 2007/09/20 18:19:08 adunstan Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -352,7 +352,15 @@ SysLoggerMain(int argc, char *argv[])
 		}
 
 		if (rotation_requested)
+		{
+			/*
+			 * Force rotation when both values are zero.
+			 * It means the request was sent by pg_rotate_logfile.
+			 */
+			if (!time_based_rotation && size_rotation_for == 0)
+				size_rotation_for = LOG_DESTINATION_STDERR | LOG_DESTINATION_CSVLOG;
 			logfile_rotate(time_based_rotation, size_rotation_for);
+		}
 
 #ifndef WIN32
 
@@ -1154,7 +1162,7 @@ logfile_rotate(bool time_based_rotation, int size_rotation_for)
 		EnterCriticalSection(&sysfileSection);
 #endif
 		fclose(csvlogFile);
-		syslogFile = fh;
+		csvlogFile = fh;
 #ifdef WIN32
 		LeaveCriticalSection(&sysfileSection);
 #endif
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 470f96ca96c335b55ad7eeb70e45a98c40297a6f..3816210d85a5d023d08598ecc490999bee90ed3e 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -312,7 +312,7 @@
 
 
 #silent_mode = off			# DO NOT USE without syslog or 
-					# redirect_stderr
+					# logging_collector
 					# (change requires restart)
 
 # - What to Log -