diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index cea239bd0c1821cf3f3a1d0d5a97666bb2681f66..73c4e5dff39c634233aa4ce840fd854869f1585e 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -1394,7 +1394,10 @@ class LURepairDiskSizes(NoHooksLU):
 
     changed = []
     for node, dskl in per_node_disks.items():
-      result = self.rpc.call_blockdev_getsizes(node, [v[2] for v in dskl])
+      newl = [v[2].Copy() for v in dskl]
+      for dsk in newl:
+        self.cfg.SetDiskID(dsk, node)
+      result = self.rpc.call_blockdev_getsizes(node, newl)
       if result.failed:
         self.LogWarning("Failure in blockdev_getsizes call to node"
                         " %s, ignoring", node)