diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 2b341c4395c742d6b89add08e3692c99b4029dd0..51518102b8ed3c99f4bab0cb23016215e80b8406 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -11932,6 +11932,7 @@ class LUInstanceSetParams(LogicalUnit):
     self.recalculate_locks[locking.LEVEL_NODE] = constants.LOCKS_REPLACE
 
   def DeclareLocks(self, level):
+    # TODO: Acquire group lock in shared mode (disk parameters)
     if level == locking.LEVEL_NODE:
       self._LockInstancesNodes()
       if self.op.disk_template and self.op.remote_node:
@@ -12030,6 +12031,9 @@ class LUInstanceSetParams(LogicalUnit):
     else:
       instance_os = instance.os
 
+    assert not (self.op.disk_template and self.op.disks), \
+      "Can't modify disk template and apply disk changes at the same time"
+
     if self.op.disk_template:
       if instance.disk_template == self.op.disk_template:
         raise errors.OpPrereqError("Instance already has disk template %s" %