diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 4cad9bd0cc162fd42fe4cbdc45b2ee2bedd10937..0414dc497320db3b74849cb92c4d8ca38ee5f9e9 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -5286,7 +5286,9 @@ class LUSetInstanceParams(LogicalUnit):
                                      " missing on its primary node" % miss_mem)
 
       if be_new[constants.BE_AUTO_BALANCE]:
-        for node, nres in instance.secondary_nodes.iteritems():
+        for node, nres in nodeinfo.iteritems():
+          if node not in instance.secondary_nodes:
+            continue
           if nres.failed or not isinstance(nres.data, dict):
             self.warn.append("Can't get info from secondary node %s" % node)
           elif be_new[constants.BE_MEMORY] > nres.data['memory_free']: