diff --git a/MAC/Services/src/PipelineControl.py b/MAC/Services/src/PipelineControl.py
index 5a1eeab28eacd7f36db8ab5beeb7a1b7980eea60..5679178f5d16eaabfd8a524329066e740ce07113 100755
--- a/MAC/Services/src/PipelineControl.py
+++ b/MAC/Services/src/PipelineControl.py
@@ -246,14 +246,17 @@ class PipelineDependencies(object):
     """ Raised when a task cannot be found in the RADB. """
     pass
 
-  def __init__(self, ra_service_busname=DEFAULT_RAS_SERVICE_BUSNAME):
+  def __init__(self, ra_service_busname=DEFAULT_RAS_SERVICE_BUSNAME, otdb_service_busname=DEFAULT_OTDB_SERVICE_BUSNAME):
     self.rarpc = RARPC(busname=ra_service_busname)
+    self.otdbrpc = OTDBRPC(busname=otdb_service_busname)
 
   def open(self):
     self.rarpc.open()
+    self.otdbrpc.open()
 
   def close(self):
     self.rarpc.close()
+    self.otdbrpc.close()
 
   def __enter__(self):
     self.open()
@@ -266,9 +269,7 @@ class PipelineDependencies(object):
     """
       Return the status of a single `otdb_id'.
     """
-
-    radb_task = self.rarpc.getTask(otdb_id=otdb_id)
-    return radb_task["status"]
+    return self.otdbrpc.taskGetStatus(otdb_id=otdb_id)
 
   def getPredecessorStates(self, otdb_id):
     """
@@ -327,7 +328,7 @@ class PipelineControl(OTDBBusListener):
 
     self.otdb_service_busname = otdb_service_busname
     self.otdbrpc = OTDBRPC(busname=otdb_service_busname)
-    self.dependencies = PipelineDependencies(ra_service_busname=ra_service_busname)
+    self.dependencies = PipelineDependencies(ra_service_busname=ra_service_busname, otdb_service_busname=DEFAULT_OTDB_SERVICE_BUSNAME)
     self.slurm = Slurm()
 
   def _setStatus(self, otdb_id, status):