diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c
index 57dfbe2..408fa84 100644
--- a/contrib/auto_explain/auto_explain.c
+++ b/contrib/auto_explain/auto_explain.c
@@ -255,6 +255,9 @@ explain_ExecutorFinish(QueryDesc *queryDesc)
 		else
 			standard_ExecutorFinish(queryDesc);
 		nesting_level--;
+
+		if (queryDesc->instrument_options & INSTRUMENT_ROWS)
+			queryDesc->planstate->instrument->need_timer = false;
 	}
 	PG_CATCH();
 	{
@@ -270,6 +273,9 @@ explain_ExecutorFinish(QueryDesc *queryDesc)
 static void
 explain_ExecutorEnd(QueryDesc *queryDesc)
 {
+	if (queryDesc->instrument_options & INSTRUMENT_TIMER)
+		queryDesc->planstate->instrument->need_timer = true;
+
 	if (queryDesc->totaltime && auto_explain_enabled())
 	{
 		double		msec;
