diff --git a/src/macro/Expressions.cc b/src/macro/Expressions.cc
index b1421a6e479a6146038f588a99ba61c1bd399b85..9dd1371ecc9569f0d3d7a607c2a2a2807f87e28d 100644
--- a/src/macro/Expressions.cc
+++ b/src/macro/Expressions.cc
@@ -759,8 +759,6 @@ Function::eval()
       for (size_t i = 0; i < func->args.size(); i++)
         {
           VariablePtr mvp = dynamic_pointer_cast<Variable>(func->args.at(i));
-          if (!mvp)
-            throw StackTrace("Argument " + std::to_string(i) + " of function " + name + " must be a variable");
           env.define(mvp, args.at(i)->eval());
         }
       auto retval = body->eval();