diff --git a/b_asic/GUI/main_window.py b/b_asic/GUI/main_window.py
index 5d72ea32c07a31688274bf156b3ef48f4b80ccfd..ca5265383ac054e98eb2daf8ea7bea1d8b645e5f 100644
--- a/b_asic/GUI/main_window.py
+++ b/b_asic/GUI/main_window.py
@@ -101,7 +101,6 @@ class MainWindow(QMainWindow):
         self.maxFileNr = 4
         self.recentFilesList = []
         self.recentFilePaths = deque(maxlen=self.maxFileNr)
-        #self.init_ui()
 
         self.add_operations_from_namespace(
             b_asic.core_operations, self.ui.core_operations_list
@@ -139,7 +138,6 @@ class MainWindow(QMainWindow):
         self.ui.custom_operations_list.itemClicked.connect(
             self.on_list_widget_item_clicked
         )
-        self.ui.file_menu.aboutToShow.connect(self.updateRecentActionList)
         self.ui.save_menu.triggered.connect(self.save_work)
         self.ui.load_menu.triggered.connect(self.load_work)
         self.ui.load_operations.triggered.connect(self.add_namespace)
@@ -233,8 +231,7 @@ class MainWindow(QMainWindow):
         module, accepted = QFileDialog().getOpenFileName()
         if not accepted:
             return
-        recentFile = QFileInfo(module)
-        self.recentFilePaths.append(recentFile)
+        self.addRecentFile(module)
         self._load_from_file(module)
 
     def _load_from_file(self, module) -> None:
@@ -266,9 +263,7 @@ class MainWindow(QMainWindow):
         if positions is None:
             positions = {}
 
-        # print(sfg)
         for op in sfg.split():
-            # print(op)
             self.create_operation(
                 op,
                 positions[op.graph_id][0:2] if op.graph_id in positions else None,
@@ -324,23 +319,35 @@ class MainWindow(QMainWindow):
     def updateRecentActionList(self):
         settings = QSettings()
 
-        dequelen = len(self.recentFilePaths)
+        rfp = settings.value("recentFiles")
+
+        dequelen = len(rfp)
 
         if dequelen > 0:
             for i in range(dequelen):
                 action = self.recentFilesList[i]
-                action.setText(self.recentFilePaths[i].fileName())
-                action.setData(self.recentFilePaths[i])
+                action.setText(rfp[i].fileName())
+                action.setData(rfp[i])
                 action.setVisible(True)
 
             for i in range(dequelen, self.maxFileNr):
                 self.recentFilesList[i].setVisible(False)
 
     def openRecent(self, action):
-        print(type(action))
-        print(action)
-        print(action.data())
-        print("openrecent")
+        self._load_from_file(action.data().filePath())
+
+    def addRecentFile(self, module):
+        settings = QSettings()
+
+        rfp = settings.value("recentFiles")
+
+        recentFile = QFileInfo(module)
+        if recentFile not in rfp:
+            rfp.append(recentFile)
+
+        settings.setValue("recentFiles", rfp)
+
+        self.updateRecentActionList()
 
     def exit_app(self) -> None:
         self.logger.info("Exiting the application.")