diff --git a/xos/hpc_observer/steps/sync_cdnprefix.py b/xos/hpc_observer/steps/sync_cdnprefix.py
index 58cda11..c22eb51 100644
--- a/xos/hpc_observer/steps/sync_cdnprefix.py
+++ b/xos/hpc_observer/steps/sync_cdnprefix.py
@@ -25,10 +25,15 @@
         SyncStep.__init__(self, **args)
         HpcLibrary.__init__(self)
 
+    def filter_hpc_service(self, objs):
+        hpcService = self.get_hpc_service()
+
+        return [x for x in objs if x.contentProvider.serviceProvider.hpcService == hpcService]
+
     def fetch_pending(self, deleted):
         #self.consistency_check()
 
-        return SyncStep.fetch_pending(self, deleted)
+        return self.filter_hpc_service(SyncStep.fetch_pending(self, deleted))
 
     def consistency_check(self):
         # set to true if something changed
diff --git a/xos/hpc_observer/steps/sync_contentprovider.py b/xos/hpc_observer/steps/sync_contentprovider.py
index bf96421..3732466 100644
--- a/xos/hpc_observer/steps/sync_contentprovider.py
+++ b/xos/hpc_observer/steps/sync_contentprovider.py
@@ -25,10 +25,15 @@
         SyncStep.__init__(self, **args)
         HpcLibrary.__init__(self)
 
+    def filter_hpc_service(self, objs):
+        hpcService = self.get_hpc_service()
+
+        return [x for x in objs if x.serviceProvider.hpcService == hpcService]
+
     def fetch_pending(self, deleted):
         #self.consistency_check()
 
-        return SyncStep.fetch_pending(self, deleted)
+        return self.filter_hpc_service(SyncStep.fetch_pending(self, deleted))
 
     def consistency_check(self):
         # set to true if something changed
diff --git a/xos/hpc_observer/steps/sync_originserver.py b/xos/hpc_observer/steps/sync_originserver.py
index d8baea4..7efab07 100644
--- a/xos/hpc_observer/steps/sync_originserver.py
+++ b/xos/hpc_observer/steps/sync_originserver.py
@@ -26,10 +26,15 @@
         SyncStep.__init__(self, **args)
         HpcLibrary.__init__(self)
 
+    def filter_hpc_service(self, objs):
+        hpcService = self.get_hpc_service()
+
+        return [x for x in objs if x.contentProvider.serviceProvider.hpcService == hpcService]
+
     def fetch_pending(self, deleted):
         #self.consistency_check()
 
-        return SyncStep.fetch_pending(self, deleted)
+        return self.filter_hpc_service(SyncStep.fetch_pending(self, deleted))
 
     def consistency_check(self):
         # set to true if something changed
diff --git a/xos/hpc_observer/steps/sync_serviceprovider.py b/xos/hpc_observer/steps/sync_serviceprovider.py
index 9d7d7ea..ff7e2f6 100644
--- a/xos/hpc_observer/steps/sync_serviceprovider.py
+++ b/xos/hpc_observer/steps/sync_serviceprovider.py
@@ -25,10 +25,15 @@
         SyncStep.__init__(self, **args)
         HpcLibrary.__init__(self)
 
+    def filter_hpc_service(self, objs):
+        hpcService = self.get_hpc_service()
+
+        return [x for x in objs if x.hpcService == hpcService]
+
     def fetch_pending(self, deleted):
         #self.consistency_check()
 
-        return SyncStep.fetch_pending(self, deleted)
+        return self.filter_hpc_service(SyncStep.fetch_pending(self, deleted))
 
     def consistency_check(self):
         # set to true if something changed
diff --git a/xos/hpc_observer/steps/sync_sitemap.py b/xos/hpc_observer/steps/sync_sitemap.py
index ae8ca76..c81e2ce 100644
--- a/xos/hpc_observer/steps/sync_sitemap.py
+++ b/xos/hpc_observer/steps/sync_sitemap.py
@@ -25,8 +25,13 @@
         SyncStep.__init__(self, **args)
         HpcLibrary.__init__(self)
 
+    def filter_hpc_service(self, objs):
+        hpcService = self.get_hpc_service()
+
+        return [x for x in objs if x.hpcService == hpcService]
+
     def fetch_pending(self, deleted):
-        return SyncStep.fetch_pending(self, deleted)
+        return self.filter_hpc_service(SyncStep.fetch_pending(self, deleted))
 
     def consistency_check(self):
         # set to true if something changed
