diff --git a/src/dichotomie.ts b/src/dichotomie.ts
index d90fcf869e3742b3631f1205b13c1b235df96ff0..a4bb12e8e04646b726e915a0abc37f0fb5372df6 100644
--- a/src/dichotomie.ts
+++ b/src/dichotomie.ts
@@ -116,7 +116,7 @@ export class Dichotomie extends Debug {
                     );
                     return new Result(new Message(MessageCode.ERROR_DICHO_CONVERGE, {
                         lastApproximation: s.value
-                    }));
+                    }), this.nub);
                 }
             } else {
                 return new Result(r.res);
diff --git a/src/prebarrage/pre_barrage.ts b/src/prebarrage/pre_barrage.ts
index 79719f20578144d5cffa4f77706ab911ecbdf789..414fc7be568579c8838d416c09112d7a413683a1 100644
--- a/src/prebarrage/pre_barrage.ts
+++ b/src/prebarrage/pre_barrage.ts
@@ -430,7 +430,7 @@ export class PreBarrage extends Nub {
         }
         // console.debug(tQ);
         // console.debug(tZ1);
-        const r = new Result(this.prms.Z1.v);
+        const r = new Result(this.prms.Z1.v, this);
         if(!bConverged) {
             r.resultElement.addMessage(new Message(MessageCode.WARNING_PREBARRAGE_NON_CONVERGENCE, {
                 precision: (z1stat.max - z1stat.min)
diff --git a/src/util/log.ts b/src/util/log.ts
index 2f5b9f4f4db6f18ebaac8c53e1cd3bcf3f8f611b..bc023847754979af04ff19ed797a518a859cdd70 100644
--- a/src/util/log.ts
+++ b/src/util/log.ts
@@ -26,7 +26,7 @@ export class cLog {
     public add(m: Message) {
         // add pointer to the current log as message's parent, unless the message
         // already has a parent, and unless the current log has no pointer to a result
-        if (m.parent === undefined && this.parent !== undefined) {
+        if (m.parent === undefined) {
             m.parent = this;
         }
         this._messages.push(m);
diff --git a/src/util/message.ts b/src/util/message.ts
index 2d032ccb25110013b1e2fc8bfbc33c6bdc0374a2..2010f77cc0db8eab192e4bb4f2d7158f446b8435 100644
--- a/src/util/message.ts
+++ b/src/util/message.ts
@@ -1,4 +1,5 @@
 import { cLog } from "./log";
+import { Nub } from "../nub";
 
 export enum MessageCode {
 
@@ -739,7 +740,12 @@ export class Message {
         throw new Error("Message.getSeverity() : valeur de code '" + this._code + "' invalide");
     }
 
+    public get sourceNub(): Nub {
+        return this.parent?.parent?.sourceNub;
+    }
+
     public toString(): string {
-        return MessageCode[this._code] + " " + JSON.stringify(this.extraVar);
+        const sourceNub = this.sourceNub;
+        return MessageCode[this._code] + " " + JSON.stringify(this.extraVar) + (sourceNub === undefined ? "" : " parentnub " + sourceNub.constructor.name);
     }
 }