diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index db61569..ab5fa0e 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -2588,7 +2588,15 @@ CleanupBackend(int pid,
 	 * assume everything is all right and proceed to remove the backend from
 	 * the active backend list.
 	 */
+#ifndef WIN32
 	if (!EXIT_STATUS_0(exitstatus) && !EXIT_STATUS_1(exitstatus))
+#else
+	/*
+	 * On Win32 we can get ERROR_WAIT_NO_CHILDREN (128) if the backend dies
+	 * before it has properly started.
+	 */
+	if (!EXIT_STATUS_0(exitstatus) && !EXIT_STATUS_1(exitstatus) && exitstatus != ERROR_WAIT_NO_CHILDREN)
+#endif
 	{
 		HandleChildCrash(pid, exitstatus, _("server process"));
 		return;
