diff --git a/b_asic/gui_utils/plot_window.py b/b_asic/gui_utils/plot_window.py
index 77babe1f7e732386b199581507e1ee88c50b5645..44a673129849f830a45e4beebc70e21e894d881f 100644
--- a/b_asic/gui_utils/plot_window.py
+++ b/b_asic/gui_utils/plot_window.py
@@ -100,8 +100,13 @@ class PlotWindow(QDialog):
         self._plot_axes = self._plot_fig.add_subplot(111)
         self._plot_axes.xaxis.set_major_locator(MaxNLocator(integer=True))
 
+        ordered_for_plotting = {}
+        ordered_for_plotting.update(sim_res_others)
+        ordered_for_plotting.update(sim_res_delays)
+        ordered_for_plotting.update(sim_res_ins)
+        ordered_for_plotting.update(sim_res_outs)
         self._lines = {}
-        for key in sim_res_others | sim_res_delays | sim_res_ins | sim_res_outs:
+        for key, result in ordered_for_plotting.items():
             line = self._plot_axes.plot(sim_result[key], label=key)
             self._lines[key] = line[0]
 
@@ -127,7 +132,12 @@ class PlotWindow(QDialog):
         self.checklist.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
         self.checklist.itemChanged.connect(self._item_change)
         listitems = {}
-        for key in sim_res_ins | sim_res_outs | sim_res_delays | sim_res_others:
+        ordered_for_checklist = {}
+        ordered_for_checklist.update(sim_res_ins)
+        ordered_for_checklist.update(sim_res_outs)
+        ordered_for_checklist.update(sim_res_delays)
+        ordered_for_checklist.update(sim_res_others)
+        for key in ordered_for_checklist:
             listitem = QListWidgetItem(key)
             listitems[key] = listitem
             self.checklist.addItem(listitem)
diff --git a/test/test_simulation_gui.py b/test/test_simulation_gui.py
new file mode 100644
index 0000000000000000000000000000000000000000..753f093cb802f7fbf0bd759796435094ddc483bb
--- /dev/null
+++ b/test/test_simulation_gui.py
@@ -0,0 +1,11 @@
+import pytest
+
+try:
+    from b_asic.gui_utils.plot_window import PlotWindow
+except ImportError:
+    pytestmark = pytest.mark.skip("Qt not setup")
+
+
+def test_start(qtbot):
+    widget = PlotWindow({})
+    qtbot.addWidget(widget)