diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c
index 76619e9..fd55262 100644
--- a/src/backend/postmaster/bgworker.c
+++ b/src/backend/postmaster/bgworker.c
@@ -1025,13 +1025,16 @@ WaitForBackgroundWorkerShutdown(BackgroundWorkerHandle *handle)
 
 			status = GetBackgroundWorkerPid(handle, &pid);
 			if (status == BGWH_STOPPED)
-				return status;
+				break;
 
 			rc = WaitLatch(&MyProc->procLatch,
 						   WL_LATCH_SET | WL_POSTMASTER_DEATH, 0);
 
 			if (rc & WL_POSTMASTER_DEATH)
-				return BGWH_POSTMASTER_DIED;
+			{
+				status = BGWH_POSTMASTER_DIED;
+				break;
+			}
 
 			ResetLatch(&MyProc->procLatch);
 		}
