diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_functions_and_triggers.sql b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_functions_and_triggers.sql
index 8e6515d82348ac72847c1e411e22e98721f30615..e8389aeea5d35fe4362529e576e6c3dacf847f90 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_functions_and_triggers.sql
+++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb/sql/add_functions_and_triggers.sql
@@ -634,6 +634,16 @@ BEGIN
         IF NEW.status_id = claim_claimed_status_id AND OLD.claim_size <> NEW.claim_size THEN
             RAISE EXCEPTION 'cannot update claim size on claimed claim; old:% new:%', OLD, NEW;
         END IF;
+
+        -- bounce any task_id updates
+        IF OLD.task_id <> NEW.task_id THEN
+            RAISE EXCEPTION 'cannot change the task to which a claim belongs; old:% new:%', OLD, NEW;
+        END IF;
+
+        -- bounce any resource_id updates
+        IF OLD.resource_id <> NEW.resource_id THEN
+            RAISE EXCEPTION 'cannot change the resource to which a claim belongs; old:% new:%', OLD, NEW;
+        END IF;
     END IF;
 
     --only check claim if status and/or claim_size and/or start/end time changed
diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py b/SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py
index d4307e04c4e7d5434aad91174308b9bc38750bb1..156a34b6802b04833e74b1c2c70d86ab83c44d3b 100755
--- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/tests/t_radb.py
@@ -1119,6 +1119,13 @@ class ResourceAssignmentDatabaseTest(unittest.TestCase):
         self.assertEqual(set([task_id1]), set(t['id'] for t in
                                               self.radb.get_conflicting_overlapping_tasks(t2_claim_ids[0])))
 
+        #try to connect this claim to task1, should fail
+        self.assertFalse(self.radb.updateResourceClaims(t2_claim_ids, task_id=task_id1))
+        self.assertEqual(task_id2, t2_claims[0]['task_id'])
+
+        #try to connect this claim to other resource, should fail
+        self.assertFalse(self.radb.updateResourceClaims(t2_claim_ids, resource_id=118))
+        self.assertEqual(117, t2_claims[0]['resource_id'])
 
         # try to update the task status to scheduled, should not succeed, since it's claims are not 'claimed' yet.
         self.assertFalse(self.radb.updateTask(task_id2, task_status='scheduled'))