diff --git a/src/language/node_processor/FunctionProcessor.hpp b/src/language/node_processor/FunctionProcessor.hpp
index 41e856d47b78f3a5a0b5c60885bf13cbdecdc3e8..be95d2affcd106307762c68f4cecf1ecc49d3ea4 100644
--- a/src/language/node_processor/FunctionProcessor.hpp
+++ b/src/language/node_processor/FunctionProcessor.hpp
@@ -100,15 +100,15 @@ class FunctionProcessor : public INodeProcessor
                                                                  std::make_shared<ExecutionPolicy::Context::Values>(
                                                                    m_context_size)}};
 
-    if (m_argument_node.is_type<language::function_argument_list>()) {
+    if (m_argument_converters.size() == 1) {
+      m_argument_converters[0]->convert(context_exec_policy, m_argument_node.execute(context_exec_policy));
+    } else {
       AggregateDataVariant argument_values{
         std::get<AggregateDataVariant>(m_argument_node.execute(context_exec_policy))};
 
       for (size_t i = 0; i < m_argument_converters.size(); ++i) {
         m_argument_converters[i]->convert(context_exec_policy, std::move(argument_values[i]));
       }
-    } else {
-      m_argument_converters[0]->convert(context_exec_policy, m_argument_node.execute(context_exec_policy));
     }
 
     if (m_function_expression_processors.size() == 1) {