diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 4bd2a8fc882c63aff8a05f03ac2b287d36612495..1c07c1f87bc5050707f888a3646fb70e1baef2a6 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -5883,10 +5883,11 @@ class TLReplaceDisks(Tasklet):
       raise errors.OpPrereqError("The specified node is already the"
                                  " secondary node of the instance.")
 
-    if self.mode == constants.REPLACE_DISK_AUTO:
-      if self.disks:
-        raise errors.OpPrereqError("Cannot specify disks to be replaced")
+    if self.disks and self.mode in (constants.REPLACE_DISK_AUTO,
+                                    constants.REPLACE_DISK_CHG):
+      raise errors.OpPrereqError("Cannot specify disks to be replaced")
 
+    if self.mode == constants.REPLACE_DISK_AUTO:
       faulty_primary = self._FindFaultyDisks(self.instance.primary_node)
       faulty_secondary = self._FindFaultyDisks(secondary_node)