diff --git a/src/backend/storage/ipc/latch.c b/src/backend/storage/ipc/latch.c
index 24d44c982d..f876dc7d97 100644
--- a/src/backend/storage/ipc/latch.c
+++ b/src/backend/storage/ipc/latch.c
@@ -1835,15 +1835,18 @@ WaitEventSetWaitBlock(WaitEventSet *set, int cur_timeout,
 
 	if (cur_event->events == WL_LATCH_SET)
 	{
-		if (!ResetEvent(set->latch->event))
-			elog(ERROR, "ResetEvent failed: error code %lu", GetLastError());
-
-		if (set->latch && set->latch->is_set)
+		if (set->latch)
 		{
-			occurred_events->fd = PGINVALID_SOCKET;
-			occurred_events->events = WL_LATCH_SET;
-			occurred_events++;
-			returned_events++;
+		    if (!ResetEvent(set->latch->event))
+			    elog(ERROR, "ResetEvent failed: error code %lu", GetLastError());
+
+		    if (set->latch->is_set)
+		    {
+			    occurred_events->fd = PGINVALID_SOCKET;
+			    occurred_events->events = WL_LATCH_SET;
+			    occurred_events++;
+			    returned_events++;
+			}
 		}
 	}
 	else if (cur_event->events == WL_POSTMASTER_DEATH)