diff --git a/src/operator/MetaOperator.cpp b/src/operator/MetaOperator.cpp
index dd736d8531ec77e28da7a3c48429bd0ad2e6e6e7..1b4c7399017c0827e76325d18645aa3956869f74 100644
--- a/src/operator/MetaOperator.cpp
+++ b/src/operator/MetaOperator.cpp
@@ -84,24 +84,12 @@ void Aidge::MetaOperator_Op::setBackend(const std::string &name, Aidge::DeviceId
 
 std::shared_ptr<Aidge::Attributes> Aidge::MetaOperator_Op::attributes() const {
     auto attrs = std::make_shared<DynamicAttributes>();
-    std::set<std::string> nonUniqueGlobalAttrs;
 
     for (const auto& node : mGraph->getRankedNodesName("{3}")) {
-        const auto nodeAttrs = node.first->getOperator()->attributes()->getAttrs();
-        for (const auto& attr : nodeAttrs) {
-            attrs->addAttr(node.first->type() + "#" + node.second + "." + attr.first, attr.second);
-            if (node.second == "0") {
-                attrs->addAttr(node.first->type() + "." + attr.first, attr.second);
-                if (nonUniqueGlobalAttrs.find(attr.first) == nonUniqueGlobalAttrs.end()) {
-                    if (!attrs->hasAttr(attr.first)) {
-                        attrs->addAttr(attr.first, attr.second);
-                    }
-                    else {
-                        attrs->delAttr(attr.first);
-                        nonUniqueGlobalAttrs.insert(attr.first);
-                    }
-                }
-            }
+        const auto nodeAttrs = DynamicAttributes(node.first->getOperator()->attributes()->getAttrs());
+        attrs->addAttr(node.first->type() + "#" + node.second, nodeAttrs);
+        if (node.second == "0") {
+            attrs->addAttr(node.first->type(), nodeAttrs);
         }
     }