diff --git a/scenes/core.py b/scenes/core.py
index b62771de8a832ea4a01fb8858efc7398a2085f41..b2333f9af2f8f8bf78af551c9d7d397e4e9a587b 100644
--- a/scenes/core.py
+++ b/scenes/core.py
@@ -63,7 +63,7 @@ class Source(pyotb.Output):
         # Since it can only be called with pyotb apps, we do the following:
         # - if the output is a str, (e.g. the original dimap filename), we instantiate a pyotb.Input(),
         # - else we use the original output (should be pyotb application)
-        super().__init__(app=pyotb.Input(out) if isinstance(out, str) else out, output_parameter_key="out")
+        super().__init__(app=pyotb.Input(out).pyotb_app if isinstance(out, str) else out, output_parameter_key="out")
         assert parent is not self, "You cannot assign a new source to its parent instance"
         self.parent = parent  # parent source (is another Source instance)
         self._app_stack = []  # list of otb applications or output to keep trace