diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 43435966c95033162048422816f6dfadec1541ce..8e2ca618a2388ace0ee56e3b3c92b1e7b5499250 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.538 2007/11/15 21:14:38 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.539 2007/12/06 14:32:54 alvherre Exp $
  *
  * NOTES
  *	  this is the "main" module of the postgres backend and
@@ -2578,6 +2578,10 @@ ProcessInterrupts(void)
 			ereport(ERROR,
 					(errcode(ERRCODE_QUERY_CANCELED),
 					 errmsg("canceling statement due to statement timeout")));
+		else if (IsAutoVacuumWorkerProcess())
+			ereport(ERROR,
+					(errcode(ERRCODE_QUERY_CANCELED),
+					 errmsg("canceling autovacuum task")));
 		else
 			ereport(ERROR,
 					(errcode(ERRCODE_QUERY_CANCELED),