diff --git a/src/app/components/pb-schema/pb-schema.component.ts b/src/app/components/pb-schema/pb-schema.component.ts
index 7a9ed20fefa5dcd666d319d21865d2ff55a81bbd..7ca98ce67d4975b38266c5845717a1210991ff35 100644
--- a/src/app/components/pb-schema/pb-schema.component.ts
+++ b/src/app/components/pb-schema/pb-schema.component.ts
@@ -337,6 +337,7 @@ export class PbSchemaComponent implements AfterViewInit, AfterContentInit, OnIni
         this.unselect();
         this.refresh();
         this.clearResults();
+        this.calculatorComponent.showPBInputData = true;
     }
 
     public get uitextRemove() {
diff --git a/src/app/formulaire/definition/form-pb-cloison.ts b/src/app/formulaire/definition/form-pb-cloison.ts
index 311f8f9181f571974212586af1eb9108a12c2a3c..f7680be3a4345933e84410724417722e690584a1 100644
--- a/src/app/formulaire/definition/form-pb-cloison.ts
+++ b/src/app/formulaire/definition/form-pb-cloison.ts
@@ -46,31 +46,39 @@ export class FormulairePbCloison extends FormulaireParallelStructure {
             // empty "" data.value.value should return undefined, which is good for amont/aval
             const newBasin = pb.findChild(data.value?.value) as PbBassin;
             if (sender.id === "select_upstream_basin") {
-                // remove and recreate wall (easier for pointers consistency) but preserve UID
-                const uid = nub.uid;
-                const oldDownstreamBasin = nub.bassinAval;
-                pb.deleteChild(pb.findChildPosition(nub.uid));
-                const newWall = new PbCloison(newBasin, oldDownstreamBasin);
-                newWall.setUid(uid);
-                // copy structures
-                for (const s of nub.structures) {
-                    newWall.addChild(s);
+                // update only if upstream basin changed (prevents updating on unwanted events)
+                if (newBasin?.uid !== nub.bassinAmont?.uid) {
+                    // remove and recreate wall (easier for pointers consistency) but preserve UID
+                    const uid = nub.uid;
+                    const oldDownstreamBasin = nub.bassinAval;
+                    pb.deleteChild(pb.findChildPosition(nub.uid));
+                    const newWall = new PbCloison(newBasin, oldDownstreamBasin);
+                    newWall.setUid(uid);
+                    // copy structures
+                    for (const s of nub.structures) {
+                        newWall.addChild(s);
+                    }
+                    pb.addChild(newWall);
+                    this.currentNub = newWall;
+                    this.reset();
                 }
-                pb.addChild(newWall);
-                this.currentNub = newWall;
             } else if (sender.id === "select_downstream_basin") {
-                // remove and recreate wall (easier for pointers consistency) but preserve UID
-                const uid = nub.uid;
-                const oldUpstreamBasin = nub.bassinAmont;
-                pb.deleteChild(pb.findChildPosition(nub.uid));
-                const newWall = new PbCloison(oldUpstreamBasin, newBasin);
-                newWall.setUid(uid);
-                // copy structures
-                for (const s of nub.structures) {
-                    newWall.addChild(s);
+                // update only if downstream basin changed (prevents updating on unwanted events)
+                if (newBasin?.uid !== nub.bassinAval?.uid) {
+                    // remove and recreate wall (easier for pointers consistency) but preserve UID
+                    const uid = nub.uid;
+                    const oldUpstreamBasin = nub.bassinAmont;
+                    pb.deleteChild(pb.findChildPosition(nub.uid));
+                    const newWall = new PbCloison(oldUpstreamBasin, newBasin);
+                    newWall.setUid(uid);
+                    // copy structures
+                    for (const s of nub.structures) {
+                        newWall.addChild(s);
+                    }
+                    pb.addChild(newWall);
+                    this.currentNub = newWall;
+                    this.reset();
                 }
-                pb.addChild(newWall);
-                this.currentNub = newWall;
             }
             this.notifyObservers({
                 action: "updateBasin",