diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index b4dcda2ca344e35d53bcd0fbb8c4a2eaa10f1167..62c1c8d0c2ab8999ea839748e1ff2320601834cd 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -4622,10 +4622,15 @@ class LUSetInstanceParams(LogicalUnit):
       self.hv_new = self.hv_inst = {}
 
     self.warn = []
+
     if constants.BE_MEMORY in self.op.beparams and not self.force:
+      mem_check_list = [pnode]
+      if be_new[constants.BE_AUTOBALANCE]:
+        # either we changed autobalance to yes or it was from before
+        mem_check_list.extend(instance.secondary_nodes)
       instance_info = self.rpc.call_instance_info(pnode, instance.name,
                                                   instance.hypervisor)
-      nodeinfo = self.rpc.call_node_info(nodelist, self.cfg.GetVGName(),
+      nodeinfo = self.rpc.call_node_info(mem_check_list, self.cfg.GetVGName(),
                                          instance.hypervisor)
 
       if pnode not in nodeinfo or not isinstance(nodeinfo[pnode], dict):
@@ -4646,12 +4651,13 @@ class LUSetInstanceParams(LogicalUnit):
                                      " from starting, due to %d MB of memory"
                                      " missing on its primary node" % miss_mem)
 
-      for node in instance.secondary_nodes:
-        if node not in nodeinfo or not isinstance(nodeinfo[node], dict):
-          self.warn.append("Can't get info from secondary node %s" % node)
-        elif be_new[constants.BE_MEMORY] > nodeinfo[node]['memory_free']:
-          self.warn.append("Not enough memory to failover instance to"
-                           " secondary node %s" % node)
+      if be_new[constants.BE_AUTOBALANCE]:
+        for node in instance.secondary_nodes:
+          if node not in nodeinfo or not isinstance(nodeinfo[node], dict):
+            self.warn.append("Can't get info from secondary node %s" % node)
+          elif be_new[constants.BE_MEMORY] > nodeinfo[node]['memory_free']:
+            self.warn.append("Not enough memory to failover instance to"
+                             " secondary node %s" % node)
 
     return