diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 7299a7660a6676433139c293783113b8baac9145..09b7fdcbc3d0816518a214e52a99666c3f988c0d 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -138,10 +138,12 @@ CreateTrigger(CreateTrigStmt *stmt)
 								PointerGetDatum(fargtypes),
 								0);
 	if (!HeapTupleIsValid(tuple) ||
-		((Form_pg_proc) GETSTRUCT(tuple))->prorettype != 0 ||
 		((Form_pg_proc) GETSTRUCT(tuple))->pronargs != 0)
-		elog(ERROR, "CreateTrigger: function %s () does not exist", stmt->funcname);
-
+		elog(ERROR, "CreateTrigger: function %s() does not exist",
+			 stmt->funcname);
+	if (((Form_pg_proc) GETSTRUCT(tuple))->prorettype != 0)
+		elog(ERROR, "CreateTrigger: function %s() must return OPAQUE",
+			 stmt->funcname);
 	if (((Form_pg_proc) GETSTRUCT(tuple))->prolang != ClanguageId)
 	{
 		HeapTuple	langTup;