diff --git a/b_asic/GUI/main_window.py b/b_asic/GUI/main_window.py
index 7ce2ebf36fe7838aace34924075ca7d6958ef2ae..a9aac1007ef28a52380f9bb8d1c68431533409a9 100644
--- a/b_asic/GUI/main_window.py
+++ b/b_asic/GUI/main_window.py
@@ -803,13 +803,14 @@ class SFGMainWindow(QMainWindow):
         self._keybindings_page.show()
 
 
-def start_editor(sfg: Optional[SFG] = None):
+def start_editor(sfg: Optional[SFG] = None) -> Dict[str, SFG]:
     app = QApplication(sys.argv)
     window = SFGMainWindow()
     if sfg:
         window._load_sfg(sfg)
     window.show()
-    sys.exit(app.exec_())
+    app.exec_()
+    return window._sfg_dict
 
 
 if __name__ == "__main__":
diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py
index 78ca679b20ee980d2ad79052b4e9a067b125aad3..82aeb9c82ca3b3e691d7bb9e37328d7980334cb9 100644
--- a/b_asic/signal_flow_graph.py
+++ b/b_asic/signal_flow_graph.py
@@ -1468,11 +1468,11 @@ class SFG(AbstractOperation):
         """
         raise NotImplementedError()
 
-    def edit(self) -> None:
+    def edit(self) -> Dict[str, "SFG"]:
         """Edit SFG in GUI."""
         from b_asic.GUI.main_window import start_editor
 
-        start_editor(self)
+        return start_editor(self)
 
     def unfold(self, factor: int) -> "SFG":
         """