diff --git a/editors/awk.c b/editors/awk.c
index fa3fc89..98e7a83 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -2636,7 +2636,8 @@ static var *evaluate(node *op, var *res)
 			var *vbeg, *v;
 			const char *sv_progname;
 
-			if (!op->r.f->body.first)
+			/* The body might be empty, still has to eval the args */
+			if (!op->r.n->info && !op->r.f->body.first)
 				syntax_error(EMSG_UNDEF_FUNC);
 
 			vbeg = v = nvalloc(op->r.f->nargs + 1);

