diff --git a/src/main_DSL2.py b/src/main_DSL2.py
index e882493600bd17a482570863aa833e4e10fcca79..dd1ed4bf026d1508fb32560fc7fd05f6d28263c2 100644
--- a/src/main_DSL2.py
+++ b/src/main_DSL2.py
@@ -42,15 +42,15 @@ class Main_DSL2(Nextflow_Building_Blocks):
     def get_process_from_name(self, name):
         return self.origin.get_process_from_name(name)
     
-    def get_processes_called(self, tab = []):
+    def get_processes_called(self, defined = {}):
 
         for c in self.get_all_called():
             if(c.get_type()=="Process"):
-                tab.append(c)
+                defined[c] = []
             elif(c.get_type()=="Subworkflow"):
-                tab+=c.get_processes_called()
+                _ = c.get_processes_called(defined = defined)
         
-        return list(set(tab))
+        return list(defined.keys())
 
 
     def get_function_from_name(self, name):
diff --git a/src/nextflow_file.py b/src/nextflow_file.py
index ca7d93c5780d1dcf0e24c75f19eb06abe843a4f8..9c393db7cd999e8cd25be9d48d08d637ee3ecdba 100644
--- a/src/nextflow_file.py
+++ b/src/nextflow_file.py
@@ -305,11 +305,11 @@ class Nextflow_File(Nextflow_Building_Blocks):
         return dict
 
 
-    def get_processes_called(self, tab = []):
+    def get_processes_called(self):
         if(self.get_DSL()=="DSL1"):
             return self.get_processes()
         elif(self.get_DSL()=="DSL2"):
-            return self.main.get_processes_called()
+            return self.main.get_processes_called(defined={})
         else:
             raise Exception("This shouldn't happen!")