diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 2a26fe7fd409ffa4a9d795a5d8c64d4f58673294..62919ffb04c87fe36c268ffe387cfbe30b9bccf1 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -42,7 +42,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.161 2005/06/10 20:48:54 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.162 2005/08/12 21:36:59 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1266,6 +1266,7 @@ write_syslog(int level, const char *line)
 static void
 write_eventlog(int level, const char *line)
 {
+	int eventlevel = EVENTLOG_ERROR_TYPE;
 	static HANDLE evtHandle = INVALID_HANDLE_VALUE;
 
 	if (evtHandle == INVALID_HANDLE_VALUE)
@@ -1278,8 +1279,33 @@ write_eventlog(int level, const char *line)
 		}
 	}
 
+	switch (level)
+	{
+		case DEBUG5:
+		case DEBUG4:
+		case DEBUG3:
+		case DEBUG2:
+		case DEBUG1:
+		case LOG:
+		case COMMERROR:
+		case INFO:
+		case NOTICE:
+			eventlevel = EVENTLOG_INFORMATION_TYPE;
+			break;
+		case WARNING:
+			eventlevel = EVENTLOG_WARNING_TYPE;
+			break;
+		case ERROR:
+		case FATAL:
+		case PANIC:
+		default:
+			eventlevel = EVENTLOG_ERROR_TYPE;
+			break;
+	}
+
+
 	ReportEvent(evtHandle,
-				level,
+				eventlevel,
 				0,
 				0,				/* All events are Id 0 */
 				NULL,
@@ -1634,32 +1660,7 @@ send_message_to_server_log(ErrorData *edata)
 	/* Write to eventlog, if enabled */
 	if (Log_destination & LOG_DESTINATION_EVENTLOG)
 	{
-		int			eventlog_level;
-
-		switch (edata->elevel)
-		{
-			case DEBUG5:
-			case DEBUG4:
-			case DEBUG3:
-			case DEBUG2:
-			case DEBUG1:
-			case LOG:
-			case COMMERROR:
-			case INFO:
-			case NOTICE:
-				eventlog_level = EVENTLOG_INFORMATION_TYPE;
-				break;
-			case WARNING:
-				eventlog_level = EVENTLOG_WARNING_TYPE;
-				break;
-			case ERROR:
-			case FATAL:
-			case PANIC:
-			default:
-				eventlog_level = EVENTLOG_ERROR_TYPE;
-				break;
-		}
-		write_eventlog(eventlog_level, buf.data);
+		write_eventlog(edata->elevel, buf.data);
 	}
 #endif   /* WIN32 */
 
@@ -1675,7 +1676,7 @@ send_message_to_server_log(ErrorData *edata)
 		 * because that's really a pipe to the syslogger process.
 		 */
 		if ((!Redirect_stderr || am_syslogger) && pgwin32_is_service())
-			write_eventlog(EVENTLOG_ERROR_TYPE, buf.data);
+			write_eventlog(edata->elevel, buf.data);
 		else
 #endif
 			fprintf(stderr, "%s", buf.data);