diff --git a/src/param/param-definition.ts b/src/param/param-definition.ts
index 3db288f443e4e0561afae8d85761a6a1b7e99558..07786d7b61aac1d2d5c58f1f5801658977746d5c 100644
--- a/src/param/param-definition.ts
+++ b/src/param/param-definition.ts
@@ -64,6 +64,13 @@ export class ParamDefinition implements INubReference, INamedIterableValues, IOb
         this.checkValue(val);
     }
 
+    /**
+     * set parent a-posteriori; used by nghyd when populating forms
+     */
+    set parent(parent: ParamsEquation | JalhydObject) {
+        this._parent = parent;
+    }
+
     /**
      * identifiant unique de la forme
      *   (uid du JalhydObject (en général un Nub) + "_" + symbole du paramètre)
@@ -77,12 +84,9 @@ export class ParamDefinition implements INubReference, INamedIterableValues, IOb
             // uid du ComputeNode utilisant le ParamsEquation
             parentUid = String(this._parent.nubUid);
         } else {
-            // @TODO generate ?
-            // parentUid = "ORPHAN";
-            console.log("DIE", this._parent, this);
             throw new Error("ParamDefinition.uid : parameter has no parent !");
         }
-        return parentUid + "::" + this._symbol;
+        return parentUid + "_" + this._symbol;
     }
 
     get symbol(): string {
diff --git a/src/value_ref/object_ref.ts b/src/value_ref/object_ref.ts
index 678f48fb9d51eb311b2791cae4e9977bd0cef2d0..baba13fb94b3c03a90d5dfe3f6243898b5939658 100644
--- a/src/value_ref/object_ref.ts
+++ b/src/value_ref/object_ref.ts
@@ -154,7 +154,9 @@ export class NubReference implements INubReference {
             return undefined;
         }
         const rpv = this._referencedNub.getReferencedParamValues(this._refDefinition);
-        rpv._nubRef = this;
+        if (rpv) {
+            rpv._nubRef = this;
+        }
         return rpv;
     }