diff --git a/src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.cpp b/src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.cpp
index 731825c1fefa2df0be8d828249017ecb3bf555ee..62019550d16e36056ff2447b7797590952b6bfd8 100644
--- a/src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.cpp
@@ -320,13 +320,7 @@ ASTNodeBuiltinFunctionExpressionBuilder::_getArgumentConverter(const ASTNodeData
     }
   };
 
-  if (parameter_type == ASTNodeDataType::vector_t and parameter_type.dimension() == 1) {
-    if (not isNaturalConversion(argument_node_sub_data_type.m_data_type, parameter_type)) {
-      ASTNodeNaturalConversionChecker{argument_node_sub_data_type, ASTNodeDataType::build<ASTNodeDataType::double_t>()};
-    }
-  } else {
-    ASTNodeNaturalConversionChecker{argument_node_sub_data_type, parameter_type};
-  }
+  ASTNodeNaturalConversionChecker<AllowRToR1Conversion>{argument_node_sub_data_type, parameter_type};
 
   return get_function_argument_converter_for_argument_type();
 }
diff --git a/src/language/utils/ASTNodeNaturalConversionChecker.cpp b/src/language/utils/ASTNodeNaturalConversionChecker.cpp
index 043818697009386155b8341c7b46ae11f1afc940..81a277574753dc3e8cc75871a07d8d8a3b1a0cc6 100644
--- a/src/language/utils/ASTNodeNaturalConversionChecker.cpp
+++ b/src/language/utils/ASTNodeNaturalConversionChecker.cpp
@@ -139,31 +139,11 @@ ASTNodeNaturalConversionChecker<RToR1Conversion>::_checkIsNaturalExpressionConve
     if (node.m_data_type == ASTNodeDataType::tuple_t) {
       this->_checkIsNaturalExpressionConversion(node, data_type.contentType(), target_content_type);
     } else if (node.m_data_type == ASTNodeDataType::list_t) {
-      if (((target_data_type.contentType() == ASTNodeDataType::vector_t) and
-           (target_data_type.contentType().dimension() == 1)) or
-          ((target_data_type.contentType() == ASTNodeDataType::matrix_t) and
-           (target_data_type.contentType().nbRows() == 1) and (target_data_type.contentType().nbColumns() == 1))) {
-        for (const auto& child : node.children) {
-          if (not isNaturalConversion(child->m_data_type, target_data_type)) {
-            this->_checkIsNaturalExpressionConversion(*child, child->m_data_type,
-                                                      ASTNodeDataType::build<ASTNodeDataType::double_t>());
-          }
-        }
-      } else {
-        for (const auto& child : node.children) {
-          this->_checkIsNaturalExpressionConversion(*child, child->m_data_type, target_content_type);
-        }
+      for (const auto& child : node.children) {
+        ASTNodeNaturalConversionChecker<AllowRToR1Conversion>(*child, target_data_type.contentType());
       }
     } else {
-      if ((target_data_type.contentType() == ASTNodeDataType::vector_t) and
-          (target_data_type.contentType().dimension() == 1)) {
-        if (not isNaturalConversion(data_type, target_data_type)) {
-          this->_checkIsNaturalExpressionConversion(node, data_type,
-                                                    ASTNodeDataType::build<ASTNodeDataType::double_t>());
-        }
-      } else {
-        this->_checkIsNaturalExpressionConversion(node, data_type, target_content_type);
-      }
+      this->_checkIsNaturalExpressionConversion(node, data_type, target_content_type);
     }
   } else {
     this->_checkIsNaturalTypeConversion(node, data_type, target_data_type);