diff --git a/SAS/ResourceAssignment/ResourceAssigner/lib/schedulers.py b/SAS/ResourceAssignment/ResourceAssigner/lib/schedulers.py
index 0174c773fae85eeadf3cb4ddfa818de614c1f1ea..69d0d69ec280c650868d80691e9a10b1f7ff72d7 100644
--- a/SAS/ResourceAssignment/ResourceAssigner/lib/schedulers.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/lib/schedulers.py
@@ -1,7 +1,6 @@
 from datetime import datetime, timedelta
 
 from lofar.common.cache import cache
-from lofar.parameterset import parameterset
 
 from lofar.sas.resourceassignment.database.radb import RADatabase
 
@@ -603,14 +602,14 @@ class PriorityScheduler(StationScheduler):
 
         # find all conflicting claims & which tasks they belong to
         conflicting_claims, conflicting_tasks = self._get_conflicting_claims_and_tasks(conflict_claim)
-        conflicting_task_momids = [t["mom_id"] for t in conflicting_tasks]
+        conflicting_task_momids = [t["mom_id"] for t in conflicting_tasks if t["mom_id"]]
         logger.debug("PriorityScheduler: conflicting claims are %s", conflicting_claims)
         logger.debug("PriorityScheduler: conflicting tasks are %s", conflicting_tasks)
 
         # check which tasks we can kill
         task_priorities = self.momqueryservice.get_project_priorities_for_objects(conflicting_task_momids)
         logger.debug("PriorityScheduler: conflicting task priorities are %s", task_priorities)
-        kill_task_list = [t for t in conflicting_tasks if task_priorities[t["mom_id"]] < self._my_task_priority()]
+        kill_task_list = [t for t in conflicting_tasks if t["mom_id"] and task_priorities[t["mom_id"]] < self._my_task_priority()]
         logger.debug("PriorityScheduler: task kill list is %s", kill_task_list)
 
         # update if we're blocked by an earlier task than we know so far
diff --git a/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulers.py b/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulers.py
index d43b576b47b191866c51ec97b016b404789c045e..57f2b3f0a7615c4ad5e2ee17ab825d6369fce8ce 100755
--- a/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulers.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulers.py
@@ -378,6 +378,7 @@ class BasicSchedulerTest(SchedulerTest):
         allocation_succesful = self.new_scheduler(1, lambda _: estimates).allocate_resources()
         self.assertFalse(allocation_succesful)
 
+
 class StationSchedulerTest(BasicSchedulerTest):
     # The StationScheduler must not regress on the BasicScheduler, so we inherit all its tests
 
@@ -651,6 +652,18 @@ class PrioritySchedulerTest(StationSchedulerTest):
         self.fake_ra_database.commit()
         self.fake_ra_database.committed = False # dont confuse subsequent checks on whether the scheduler committed
 
+    def new_task_without_momid(self, task_id):
+        self.fake_ra_database.addTask(task_id, {
+               "mom_id":    None,
+               "otdb_id":   2000 + task_id,
+               "type":      "observation",
+               "starttime": datetime.datetime(2017, 1, 1, 1, 0, 0),
+               "endtime":   datetime.datetime(2017, 1, 1, 2, 0, 0),
+             })
+
+        self.fake_ra_database.commit()
+        self.fake_ra_database.committed = False # dont confuse subsequent checks on whether the scheduler committed
+
     def new_scheduler(self, task_id, resource_estimator):
         return PriorityScheduler(task_id, self.get_specification_tree(task_id), resource_estimator, self.fake_resource_availability_checker, None)
 
@@ -740,6 +753,23 @@ class PrioritySchedulerTest(StationSchedulerTest):
         otdb_id = self.fake_ra_database.tasks[0]["otdb_id"]
         self.obscontrol_mock.assert_called_with(otdb_id)
 
+    def test_should_not_kill_a_task_without_a_mom_id(self):
+        # First task must succeed
+        self.new_task_without_momid(0)
+        estimates = [{'resource_types': {'bandwidth': 512}}]
+        allocation_succesful = self.new_scheduler(0, lambda _: estimates).allocate_resources()
+        self.assertTrue(allocation_succesful)
+
+        self.new_task(1000)
+        estimates = [{'resource_types': {'bandwidth': 513}}]
+        allocation_succesful = self.new_scheduler(1000, lambda _: estimates).allocate_resources()
+        self.assertFalse(allocation_succesful)
+
+        # First task must have been killed
+        otdb_id = self.fake_ra_database.tasks[0]["otdb_id"]
+        self.obscontrol_mock.assert_not_called()
+
+
 class DwellSchedulerTest(PrioritySchedulerTest):
     # The DwellScheduler must not regress on the PriorityScheduler, so we inherit all its tests