diff --git a/beat/backend/python/algorithm.py b/beat/backend/python/algorithm.py
index 70d477e33d073690c3eccff96d0a9d473bd91087..7172b8040cb4128343be4662f4a28db94e461da9 100755
--- a/beat/backend/python/algorithm.py
+++ b/beat/backend/python/algorithm.py
@@ -186,7 +186,10 @@ class Runner(object):
 
         # The method is optional
         if hasattr(self.obj, 'prepare'):
-            self.prepared = loader.run(self.obj, 'prepare', self.exc, data_loaders)
+            if self.algorithm.type == Algorithm.AUTONOMOUS:
+                self.prepared = loader.run(self.obj, 'prepare', self.exc, data_loaders.secondaries())
+            else:
+                self.prepared = loader.run(self.obj, 'prepare', self.exc, data_loaders)
         else:
             self.prepared = True
 
diff --git a/beat/backend/python/data_loaders.py b/beat/backend/python/data_loaders.py
index ecf1a578c7b2bb62398fa3966ff1f5a70bac8ddc..581e04704cbd5d4df8c29d222f7dad2f570be2ec 100755
--- a/beat/backend/python/data_loaders.py
+++ b/beat/backend/python/data_loaders.py
@@ -353,4 +353,6 @@ class DataLoaderList(object):
             if data_loader is not self.main_loader:
                 secondaries_list.add(data_loader)
 
+        secondaries_list.main_loader = None
+
         return secondaries_list