diff --git a/jalhyd_branch b/jalhyd_branch
index 1a206a71f1ac9b432853fe419fba2ff9de023996..5c9832c546a8f7da9c931bd6e76e56b328266643 100644
--- a/jalhyd_branch
+++ b/jalhyd_branch
@@ -1 +1 @@
-259-bug-erreur-de-formulation-de-la-loi-de-cunge-en-orifice-denoye
+260-messages-de-log-maintenir-un-pointeur-vers-le-resultat-afin-de-pouvoir-contextualiser-par-la
diff --git a/src/app/components/log-entry/log-entry.component.ts b/src/app/components/log-entry/log-entry.component.ts
index 5cdb305db72fb188e14a511c0608d17bdb16657e..63225d39190d1174eca30a60c22f7f90181c0cf1 100644
--- a/src/app/components/log-entry/log-entry.component.ts
+++ b/src/app/components/log-entry/log-entry.component.ts
@@ -1,6 +1,6 @@
 import { Component, Input, OnChanges } from "@angular/core";
 
-import { Message, MessageSeverity } from "jalhyd";
+import { Message, MessageSeverity, Result, Nub } from "jalhyd";
 
 import { I18nService } from "../../services/internationalisation.service";
 import { ApplicationSetupService } from "../../services/app-setup.service";
diff --git a/src/app/services/internationalisation.service.ts b/src/app/services/internationalisation.service.ts
index bc3f5b5a692494816e9f9c33d053dfb7804af262..5ba795217ef322500f4534d302e5c58b8a3241fa 100644
--- a/src/app/services/internationalisation.service.ts
+++ b/src/app/services/internationalisation.service.ts
@@ -1,6 +1,6 @@
 import { Injectable, isDevMode } from "@angular/core";
 
-import { Message, MessageCode, Observable, Observer, Nub } from "jalhyd";
+import { Message, MessageCode, Observable, Observer, Nub, CalculatorType } from "jalhyd";
 
 import { StringMap } from "../stringmap";
 import { ApplicationSetupService } from "./app-setup.service";
@@ -141,6 +141,7 @@ export class I18nService extends Observable implements Observer {
      * @param nDigits nombre de chiffres à utiliser pour l'arrondi dans le cas de données numériques
      */
     public localizeMessage(r: Message, nDigits: number = 3): string {
+        let text: string;
         let m: string = this.getMessageFromCode(r.code);
 
         for (const k in r.extraVar) {
@@ -191,7 +192,44 @@ export class I18nService extends Observable implements Observer {
             return this.localizeText(p1);
         });
 
-        return decodeHtml(m);
+        text = decodeHtml(m);
+
+        // prefix message if needed
+        if (r.parent && r.parent.parent && r.parent.parent.sourceNub) {
+            text = this.prefix(r.parent.parent.sourceNub, text);
+        }
+        return text;
+    }
+
+    /**
+     * Prefix given text message with context read from given Nub
+     * @param n Nub associated to original Message object, to read context from
+     * @param text text message to prefix
+     */
+    private prefix(n: Nub, text: string): string {
+        let prefixed: string = text;
+        if (n.parent) {
+            // get child name and position from Nub's parent
+            const pos = String(n.findPositionInParent() + 1);
+            const name = this.childName(n.parent);
+            let m: Message;
+            // Detect downwalls
+            if (n.calcType === CalculatorType.CloisonAval) {
+                m = new Message(MessageCode.INFO_PARENT_PREFIX_DOWNWALL);
+            } else {
+                m = new Message(MessageCode.INFO_PARENT_PREFIX);
+                m.extraVar.name = name;
+                m.extraVar.position = pos;
+            }
+            const prefix = this.localizeMessage(m);
+            prefixed =
+                prefix.substring(0, 1).toUpperCase() + prefix.substring(1)
+                + " "
+                + prefixed.substring(0, 1).toLowerCase() + prefixed.substring(1);
+            // recursivity
+            prefixed = this.prefix(n.parent, prefixed);
+        }
+        return prefixed;
     }
 
     private replaceAll(str: string, find: string, replace: string) {
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index ca693f14944335d5e0da2b434e4c7fac08f7bf7b..295b0256dd39817e3a9f2442b2b0f12f5528a7ee 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -167,6 +167,8 @@
     "INFO_STUFF_MOVED": "%s #%s moved",
     "INFO_STUFF_REMOVED": "%s #%s removed",
     "INFO_STUFF_N": "%s #",
+    "INFO_CHILD_TYPE_CLOISON": "wall",
+    "INFO_CHILD_TYPE_CLOISON_PLUR": "walls",
     "INFO_CHILD_TYPE_OUVRAGE": "device",
     "INFO_CHILD_TYPE_OUVRAGE_PLUR": "devices",
     "INFO_CHILD_TYPE_MACRORUGO": "apron",
@@ -543,7 +545,7 @@
     "WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2": "This formula is discouraged for a speed that is not between 0.4 and 2 m/s",
     "WARNING_UPSTREAM_BOTTOM_HIGHER_THAN_WATER": "Upstream water elevation is lower or equal to bottom elevation",
     "WARNING_DOWNSTREAM_BOTTOM_HIGHER_THAN_WATER": "Downstream water elevation is lower or equal to bottom elevation",
-    "WARNING_NEGATIVE_SILL": "Sill of device#%number# should be positive",
+    "WARNING_NEGATIVE_SILL": "Sill should be positive",
     "WARNING_RAMP_WIDTH_LOWER_THAN_PATTERN_WIDTH": "Ramp width should contain at least one block (%pattern%m)",
     "WARNING_RAMP_WIDTH_NOT_MULTIPLE_OF_HALF_PATTERN_WIDTH": "Ramp width should be a multiple of half the block width (%halfPattern%m). Nearest values are %lower% and %higher%",
     "WARNING_YN_SECTION_PENTE_NEG_NULLE_HNORMALE_INF": "Normal depth: slope is negative or zero, normal depth is infinite",
@@ -566,5 +568,7 @@
     "WARNING_PAR_N_ROUNDED_TO_05": "Number of patterns was rounded to %val%",
     "WARNING_PAR_M_ROUNDED_TO_1": "Number of longitudinal strips was rounded to %val%",
     "WARNING_PAR_NOT_SUBMERGED": "Insufficient downstream submergence : fall at the last downstream baffle (%DH% m).",
-    "ERROR_PAR_M_GREATER_THAN_2_N": "Number of longitudinal strips exceeds 2N = %max%"
+    "ERROR_PAR_M_GREATER_THAN_2_N": "Number of longitudinal strips exceeds 2N = %max%",
+    "INFO_PARENT_PREFIX": "%name% #%position%: ",
+    "INFO_PARENT_PREFIX_DOWNWALL": "downwall: "
 }
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 590e66d88a0f14543eb2dc80e0b6b063bfaaf20f..7825124eb9d823e8969ffe44f9dab7200850a597 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -167,6 +167,8 @@
     "INFO_STUFF_MOVED": "%s n°%s déplacé(e)",
     "INFO_STUFF_REMOVED": "%s n°%s supprimé(e)",
     "INFO_STUFF_N": "%s n°",
+    "INFO_CHILD_TYPE_CLOISON": "cloison",
+    "INFO_CHILD_TYPE_CLOISON_PLUR": "cloisons",
     "INFO_CHILD_TYPE_OUVRAGE": "ouvrage",
     "INFO_CHILD_TYPE_OUVRAGE_PLUR": "ouvrages",
     "INFO_CHILD_TYPE_MACRORUGO": "radier",
@@ -544,7 +546,7 @@
     "WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2": "Cette formule n'est pas conseillée pour une vitesse non comprise entre 0.4 et 2 m/s",
     "WARNING_UPSTREAM_BOTTOM_HIGHER_THAN_WATER": "La cote de l'eau à l'amont est plus basse ou égale à la cote de fond",
     "WARNING_DOWNSTREAM_BOTTOM_HIGHER_THAN_WATER": "La cote de l'eau à l'aval est plus basse ou égale à la cote de fond",
-    "WARNING_NEGATIVE_SILL": "La pelle du seuil de l'ouvrage n°%number% devrait être positive",
+    "WARNING_NEGATIVE_SILL": "La pelle du seuil devrait être positive",
     "WARNING_RAMP_WIDTH_LOWER_THAN_PATTERN_WIDTH": "La largeur de la rampe devrait comprendre au moins un motif de plot (%pattern%m)",
     "WARNING_RAMP_WIDTH_NOT_MULTIPLE_OF_HALF_PATTERN_WIDTH": "La largeur de la rampe devrait être un multiple d'un demi motif (%halfPattern%m). Les valeurs voisines sont %lower% et %higher%",
     "WARNING_YN_SECTION_PENTE_NEG_NULLE_HNORMALE_INF": "Hauteur normale: pente négative ou nulle, hauteur normale infinie",
@@ -567,5 +569,7 @@
     "WARNING_PAR_N_ROUNDED_TO_05": "Le nombre de motifs a été arrondi à %val%",
     "WARNING_PAR_M_ROUNDED_TO_1": "Le nombre de bandes a été arrondi à %val%",
     "WARNING_PAR_NOT_SUBMERGED": "Ennoiement par l'aval insuffisant : chute au niveau du dernier ralentisseur aval (%DH% m).",
-    "ERROR_PAR_M_GREATER_THAN_2_N": "Le nombre de bandes dépasse 2N = %max%"
+    "ERROR_PAR_M_GREATER_THAN_2_N": "Le nombre de bandes dépasse 2N = %max%",
+    "INFO_PARENT_PREFIX": "%name% n°%position% : ",
+    "INFO_PARENT_PREFIX_DOWNWALL": "cloison aval : "
 }