diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index d864cff537c2bc2d2f4721c12fe142e0efd1e3ce..1cff98eb8ff0bf6373ed4a98456124cc7db20262 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -7452,7 +7452,8 @@ class LUInstanceMove(LogicalUnit):
     _CheckNodeOnline(self, target_node)
     _CheckNodeNotDrained(self, target_node)
     _CheckNodeVmCapable(self, target_node)
-    ipolicy = _CalculateGroupIPolicy(self.cfg.GetClusterInfo(), node.group)
+    ipolicy = _CalculateGroupIPolicy(self.cfg.GetClusterInfo(),
+                                     self.cfg.GetNodeGroup(node.group))
     _CheckTargetNodeIPolicy(self, ipolicy, instance, node,
                             ignore=self.op.ignore_ipolicy)
 
@@ -7722,7 +7723,8 @@ class TLMigrateInstance(Tasklet):
 
       # Check that the target node is correct in terms of instance policy
       nodeinfo = self.cfg.GetNodeInfo(self.target_node)
-      ipolicy = _CalculateGroupIPolicy(cluster, nodeinfo.group)
+      group_info = self.cfg.GetNodeGroup(nodeinfo.group)
+      ipolicy = _CalculateGroupIPolicy(cluster, group_info)
       _CheckTargetNodeIPolicy(self.lu, ipolicy, instance, nodeinfo,
                               ignore=self.ignore_ipolicy)
 
@@ -7760,7 +7762,8 @@ class TLMigrateInstance(Tasklet):
                                    (instance.disk_template, text),
                                    errors.ECODE_INVAL)
       nodeinfo = self.cfg.GetNodeInfo(target_node)
-      ipolicy = _CalculateGroupIPolicy(cluster, nodeinfo.group)
+      group_info = self.cfg.GetNodeGroup(nodeinfo.group)
+      ipolicy = _CalculateGroupIPolicy(cluster, group_info)
       _CheckTargetNodeIPolicy(self.lu, ipolicy, instance, nodeinfo,
                               ignore=self.ignore_ipolicy)
 
@@ -9644,7 +9647,8 @@ class LUInstanceCreate(LogicalUnit):
       constants.ISPEC_NIC_COUNT: len(self.nics),
       }
 
-    ipolicy = _CalculateGroupIPolicy(cluster, pnode.group)
+    group_info = self.cfg.GetNodeGroup(pnode.group)
+    ipolicy = _CalculateGroupIPolicy(cluster, group_info)
     res = _ComputeIPolicyInstanceSpecViolation(ipolicy, ispec)
     if not self.op.ignore_ipolicy and res:
       raise errors.OpPrereqError(("Instance allocation to group %s violates"
@@ -9654,7 +9658,7 @@ class LUInstanceCreate(LogicalUnit):
 
     # disk parameters (not customizable at instance or node level)
     # just use the primary node parameters, ignoring the secondary.
-    self.diskparams = self.cfg.GetNodeGroup(pnode.group).diskparams
+    self.diskparams = group_info.diskparams
 
     if not self.adopt_disks:
       # Check lv size requirements, if not adopting
@@ -11809,7 +11813,8 @@ class LUInstanceSetParams(LogicalUnit):
         _CheckNodesFreeDiskPerVG(self, [self.op.remote_node], required)
 
         snode_info = self.cfg.GetNodeInfo(self.op.remote_node)
-        ipolicy = _CalculateGroupIPolicy(cluster, snode_info.group)
+        snode_group = self.cfg.GetNodeGroup(snode_info.group)
+        ipolicy = _CalculateGroupIPolicy(cluster, snode_group)
         _CheckTargetNodeIPolicy(self, ipolicy, instance, snode_info,
                                 ignore=self.op.ignore_ipolicy)
         if pnode_info.group != snode_info.group: