diff --git a/src/app/components/pab-results/pab-results-table.component.ts b/src/app/components/pab-results/pab-results-table.component.ts
index ac9fda71dfcedbc98c3c99f974fcfffcc91aa208..959e2a8483e22ad7f44ae12a2d632e1a58a96ca5 100644
--- a/src/app/components/pab-results/pab-results-table.component.ts
+++ b/src/app/components/pab-results/pab-results-table.component.ts
@@ -53,7 +53,7 @@ export class PabResultsTableComponent extends ResultsComponent {
             // line 1
             if (pr.cloisonsResults[0].vCalc) { // parfois le calcul des cloisons échoue
                 this._dataSet.push([
-                    "",
+                    this.intlService.localizeText("INFO_LIB_AMONT"),
                     pr.cloisonsResults[0] ? pr.cloisonsResults[0].vCalc.toFixed(nDigits) : "",
                     "", "", "", "", "", "", ""
                 ]);
@@ -89,7 +89,7 @@ export class PabResultsTableComponent extends ResultsComponent {
             if (pr.cloisonAvalResults.vCalc) {
                 const rln = pr.cloisonAvalResults.resultElement.extraResults;
                 this._dataSet.push([
-                    this.intlService.localizeText("INFO_LIB_AVAL"), // n° cloison
+                    this.intlService.localizeText("INFO_LIB_AVAL"),
                     pr.Z2.toFixed(nDigits),
                     rln.ZRAM.toFixed(nDigits),
                     rln.DH.toFixed(nDigits),
diff --git a/src/app/results/plottable-pab-results.ts b/src/app/results/plottable-pab-results.ts
index 95d123e39d3c68e2816fa3143ee82656f85f78fa..bcfa6cf532597a0d0dd330e3073abef96de32428 100644
--- a/src/app/results/plottable-pab-results.ts
+++ b/src/app/results/plottable-pab-results.ts
@@ -30,7 +30,11 @@ export class PlottablePabResults implements PlottableData {
      * @param symbol parameter / result symbol (ex: "Q")
      */
     public getChartAxisLabel(symbol: string): string {
-        return this.pabResults.headers[this.pabResults.columns.indexOf(symbol)];
+        if (symbol === "x") { // specific case for wall abscissa
+            return ServiceFactory.instance.i18nService.localizeText("INFO_LIB_ABSCISSE_CLOISON");
+        } else {
+            return this.pabResults.headers[this.pabResults.columns.indexOf(symbol)];
+        }
     }
 
     public expandLabelFromSymbol(symbol: string): string {
@@ -42,7 +46,8 @@ export class PlottablePabResults implements PlottableData {
      * as X or Y chart axis
      */
     public getAvailableChartAxis(): string[] {
-        return this.pabResults.columns;
+        // add wall abscissa on the fly
+        return [ "x" ].concat(this.pabResults.columns);
     }
 
     // just to implement interface
@@ -67,10 +72,9 @@ export class PlottablePabResults implements PlottableData {
         switch (symbol) {
             case "CLOISON":
                 data.push("");
-                for (let i = 0; i < l; i++) {
+                for (let i = 0; i <= l; i++) { // <= for one extra step (downwall)
                     data.push("" + (i + 1));
                 }
-                data.push(ServiceFactory.instance.i18nService.localizeText("INFO_LIB_AVAL"));
                 break;
 
             case "DH":
@@ -86,7 +90,7 @@ export class PlottablePabResults implements PlottableData {
                 break;
 
             case "Z":
-                for (let i = 0; i < l - 1; i++) {
+                for (let i = 0; i < l; i++) {
                     data.push(pr.cloisonsResults[i].vCalc.toFixed(nDigits));
                 }
                 data.push(pr.cloisonAvalResults.vCalc.toFixed(nDigits));
@@ -104,6 +108,16 @@ export class PlottablePabResults implements PlottableData {
                 }
                 data.push("");
                 break;
+
+            case "x": // wall abscissa
+                data.push("");
+                for (let i = 0; i < l; i++) {
+                    const er = pr.cloisonsResults[i].getExtraResult(symbol);
+                    data.push((er !== undefined) ? er.toFixed(nDigits) : "");
+                }
+                const erXdw = pr.cloisonAvalResults.getExtraResult(symbol);
+                data.push((erXdw !== undefined) ? erXdw.toFixed(nDigits) : "");
+                break;
         }
 
         return data;
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index f88b0bb858089c4cffef0f535d2ab22eeb78fe57..1abffb6c68542e304be0b2c06b2005aacfce6873 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -111,8 +111,10 @@
     "INFO_WALL_REMOVED": "Wall #%s removed",
     "INFO_LECHAPTCALMON_TITRE_COURT": "Lechapt-C.",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
+    "INFO_LIB_ABSCISSE_CLOISON": "Wall abscissa",
     "INFO_LIB_ALPHA": "Alpha coefficient",
     "INFO_LIB_ALPHA2": "Half-angle at the apex",
+    "INFO_LIB_AMONT": "Upstream",
     "INFO_LIB_AVAL": "Downstream",
     "INFO_LIB_B": "Surface width",
     "INFO_LIB_BB": "Pool width",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 1e4e1bb5a8eef6f26780bf59a73bc046acba44d3..db1a816be783fad06799d12928e2adaeb88f3e75 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -111,8 +111,10 @@
     "INFO_WALL_REMOVED": "Cloison n°%s supprimée",
     "INFO_LECHAPTCALMON_TITRE_COURT": "Lechapt-C.",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
+    "INFO_LIB_ABSCISSE_CLOISON": "Abscisse de la cloison",
     "INFO_LIB_ALPHA": "Coefficient alpha",
     "INFO_LIB_ALPHA2": "Demi-angle au sommet",
+    "INFO_LIB_AMONT": "Amont",
     "INFO_LIB_AVAL": "Aval",
     "INFO_LIB_B": "Largeur au miroir",
     "INFO_LIB_BB": "Largeur du bassin",