diff --git a/src/View/Geometry/Profile/Plot.py b/src/View/Geometry/Profile/Plot.py
index 6fc5b40aefa577b853df266195663adea1648a08..85bb19b5e82c5ce99ec141344ad9c8b0704fe0ed 100644
--- a/src/View/Geometry/Profile/Plot.py
+++ b/src/View/Geometry/Profile/Plot.py
@@ -121,3 +121,4 @@ class Plot(APlot):
     @timer
     def update(self, ind=None):
         print("TODO: implemente update")
+        self.draw()
diff --git a/src/View/Geometry/Profile/ProfileWindow.py b/src/View/Geometry/Profile/ProfileWindow.py
index a7268790f638c1b7dffc966c0bf0761ad8789286..fb59d7d145165660b50710d9fd6092b1610dbef4 100644
--- a/src/View/Geometry/Profile/ProfileWindow.py
+++ b/src/View/Geometry/Profile/ProfileWindow.py
@@ -38,15 +38,12 @@ class ProfileWindow(QMainWindow):
         self.setup_connections()
         self.plot()
 
-        self._model.dataChanged.connect(self.plot)
+        self._model.dataChanged.connect(self.update_plot)
         self.fileName = None
 
-        self.ui.tableView.installEventFilter(self)
-        self.status_change_tableview = False
-
+        # self.ui.tableView.installEventFilter(self)
         # self._model.dataChanged.connect(self.tableview_is_modified)
 
-        self.reference_data = None
         # self.ui.btn_go_back.setEnabled(False)
         # self.ui.btn_check.setEnabled(False)
         # self._model.dataChanged.connect(self.set_enable_cancel_btn)
@@ -89,7 +86,6 @@ class ProfileWindow(QMainWindow):
         self.ui.tableView.setModel(self._model)
         self.ui.tableView.setItemDelegate(Delegate())
 
-    @timer
     def plot(self):
         self.ui.tableView.model().blockSignals(True)
 
@@ -103,6 +99,14 @@ class ProfileWindow(QMainWindow):
 
         self.ui.tableView.model().blockSignals(False)
 
+    def update_plot(self):
+        self.ui.tableView.model().blockSignals(True)
+
+        # TODO: Do not rebuild all graph
+        self._plot.update()
+
+        self.ui.tableView.model().blockSignals(False)
+
 
     def insert_row(self):
         if len(self.ui.tableView.selectedIndexes()) == 0:
@@ -125,19 +129,19 @@ class ProfileWindow(QMainWindow):
 
     def sort_X_ascending(self):
         self._model.sort('x', order=Qt.AscendingOrder)
-        self.plot()
+        self.update_plot()
 
     def sort_X_descending(self):
         self._model.sort('x', order=Qt.DescendingOrder)
-        self.plot()
+        self.update_plot()
 
     def sort_Y_ascending(self):
         self._model.sort('y', order=Qt.AscendingOrder)
-        self.plot()
+        self.update_plot()
 
     def sort_Y_descending(self):
         self._model.sort('y', order=Qt.DescendingOrder)
-        self.plot()
+        self.update_plot()
 
     def move_row_down(self):
         rows = list(
@@ -150,7 +154,7 @@ class ProfileWindow(QMainWindow):
             if row < self._model.rowCount() - 1:
                 self._model.moveRowDown(row)
 
-        self.plot()
+        self.update_plot()
 
     def move_row_up(self):
         rows = list(
@@ -163,7 +167,7 @@ class ProfileWindow(QMainWindow):
             if 0 < row:
                 self._model.moveRowUp(row)
 
-        self.plot()
+        self.update_plot()
 
     def handleSave(self):
         if self.fileName is None or self.fileName == '':