diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 58ec9a2f7ba967f8954b5ab0c93da847e0fc09fb..3ad974d8e5d1ad4d3ab3e3b3f877ab3f1813954b 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.500 2006/08/29 02:11:29 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.501 2006/08/29 02:32:41 momjian Exp $
  *
  * NOTES
  *	  this is the "main" module of the postgres backend and
@@ -871,7 +871,9 @@ exec_simple_query(const char *query_string)
 	parsetree_list = pg_parse_query(query_string);
 
 	/* Log immediately if dictated by log_statement */
-	was_logged = log_after_parse(parsetree_list, query_string, &prepare_string);
+	if (log_statement != LOGSTMT_NONE || log_duration ||
+		log_min_duration_statement >= 0)
+		was_logged = log_after_parse(parsetree_list, query_string, &prepare_string);
 
 	/*
 	 * Switch back to transaction context to enter the loop.