diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 8ea7c3471c1770bd2f7f561a0be53a5966ed8209..669a78d1fe96e4e605fb7696532024fe6bf0bf40 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -4436,6 +4436,9 @@ class LUNodeRemove(LogicalUnit):
 
     modify_ssh_setup = self.cfg.GetClusterInfo().modify_ssh_setup
 
+    assert locking.BGL in self.owned_locks(locking.LEVEL_CLUSTER), \
+      "Not owning BGL"
+
     # Promote nodes to master candidate as needed
     _AdjustCandidatePool(self, exceptions=[node.name])
     self.context.RemoveNode(node.name)
@@ -5102,6 +5105,9 @@ class LUNodeAdd(LogicalUnit):
     new_node = self.new_node
     node = new_node.name
 
+    assert locking.BGL in self.owned_locks(locking.LEVEL_CLUSTER), \
+      "Not owning BGL"
+
     # We adding a new node so we assume it's powered
     new_node.powered = True