diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index 5e2c10dc57..dc8aa94eee 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -5209,16 +5209,15 @@ pg_log_query_plan(PG_FUNCTION_ARGS)
 		 */
 		ereport(WARNING,
 				(errmsg("PID %d is not a PostgreSQL backend process", pid)));
-		PG_RETURN_BOOL(false);
 	}
-
-	if (SendProcSignal(pid, PROCSIG_LOG_QUERY_PLAN, proc->backendId) < 0)
+	else if (SendProcSignal(pid, PROCSIG_LOG_QUERY_PLAN, proc->backendId) < 0)
 	{
 		/* Again, just a warning to allow loops */
 		ereport(WARNING,
 				(errmsg("could not send signal to process %d: %m", pid)));
-		PG_RETURN_BOOL(false);
 	}
+	else
+		PG_RETURN_BOOL(true);
 
-	PG_RETURN_BOOL(true);
+	PG_RETURN_BOOL(false);
 }
