diff --git a/beat/editor/widgets/experimenteditor.py b/beat/editor/widgets/experimenteditor.py
index a6d1f2629c88892d661154e2481d78cc7d3c7b8d..be4d3c75c0d6ce22418ef1c8c53c672042f0c835 100644
--- a/beat/editor/widgets/experimenteditor.py
+++ b/beat/editor/widgets/experimenteditor.py
@@ -597,7 +597,7 @@ class ExecutionPropertiesEditor(AbstractBaseEditor):
         super().__init__(prefix_path, parent)
 
         self.json_object = {}
-        self.io_mapping = {}
+        self.io_mapping = {"inputs": {}}
         self.environment_changed = False
         self.queue_changed = False
         self._queue_enabled = True
@@ -664,7 +664,6 @@ class ExecutionPropertiesEditor(AbstractBaseEditor):
 
     @pyqtSlot()
     def __remapIO(self):
-
         status, mapping = IOMapperDialog.getIOMapping(self.prefix_path, self.dump())
 
         if status and self.io_mapping != mapping:
@@ -756,12 +755,7 @@ class ExecutionPropertiesEditor(AbstractBaseEditor):
     def load(self, json_object):
         self.json_object = copy.deepcopy(json_object)
         inputs = json_object.get("inputs", {})
-
-        self.io_mapping = {"inputs": inputs}
-
         outputs = json_object.get("outputs", {})
-        if outputs:
-            self.io_mapping["outputs"] = outputs
 
         self.algorithm_model.setInputCount(len(inputs))
         self.algorithm_model.setOutputCount(len(outputs))
@@ -793,6 +787,10 @@ class ExecutionPropertiesEditor(AbstractBaseEditor):
         if parameters:
             self.parameters_editor.load(parameters)
 
+        self.io_mapping = {"inputs": inputs}
+        if outputs:
+            self.io_mapping["outputs"] = outputs
+
         self.environment_changed = False
         self.queue_changed = False
         self.parameters_changed = False