diff --git a/src/View/InitialConditions/PlotDischarge.py b/src/View/InitialConditions/PlotDischarge.py
index 7c43c1e557815071c4908de1de08783b1034cc91..5ab0b5012677c7e7b549bf302834b4f2e757ed0b 100644
--- a/src/View/InitialConditions/PlotDischarge.py
+++ b/src/View/InitialConditions/PlotDischarge.py
@@ -52,18 +52,41 @@ class PlotDischarge(PamhyrPlot):
         self._init = True
 
     def draw_data(self):
-        kp = self.data.reach.reach.get_kp()
+        self.line_discharge = []
 
         if len(self.data) != 0:
             kp = self.data.get_kp()
             discharge = self.data.get_discharge()
 
-            self.line_kp_zmin = self.canvas.axes.plot(
+            line, = self.canvas.axes.plot(
                 kp, discharge,
                 color=self.color_plot,
                 **self.plot_default_kargs
             )
+            self.line_discharge.append(line)
 
     @timer
     def update(self, ind=None):
-        self.draw()
+        if not self._init:
+            self.draw()
+
+        self.update_data()
+
+        self.update_idle()
+
+    def update_data(self):
+        if len(self.data) == len(self.line_discharge):
+            kp = self.data.get_kp()
+            discharge = self.data.get_discharge()
+
+            line, = self.canvas.axes.plot(
+                kp, discharge,
+                color=self.color_plot,
+                **self.plot_default_kargs
+            )
+            self.line_discharge.append(line)
+        else:
+            for line in self.line_discharge:
+                line.remove()
+
+            self._draw_data()
diff --git a/src/View/InitialConditions/Window.py b/src/View/InitialConditions/Window.py
index 82946e84d2bb6c0b48fe16a8742c77039709742b..a9f4c6adbbca142b1aebc9b0bbf1ad30aa4ac3e0 100644
--- a/src/View/InitialConditions/Window.py
+++ b/src/View/InitialConditions/Window.py
@@ -194,8 +194,13 @@ class InitialConditionsWindow(PamhyrWindow):
         return rows[0].row()
 
     def update(self):
+        self.update(propagate=False)
+
+    def _update(self, propagate=True):
         self._update_plot()
-        self._propagate_update(key=Modules.INITIAL_CONDITION)
+
+        if propagate:
+            self._propagate_update(key=Modules.INITIAL_CONDITION)
 
     def _update_plot(self):
         self.plot_1.draw()