diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 9075fd5f961f7a103d7b386b9c2c361828a90b74..2cdf48f4f11afd340433d96b1df6ef8d0ac32b3c 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -2767,9 +2767,14 @@ class LUStartupInstance(LogicalUnit):
     # check bridges existance
     _CheckInstanceBridgesExist(self, instance)
 
-    _CheckNodeFreeMemory(self, instance.primary_node,
-                         "starting instance %s" % instance.name,
-                         bep[constants.BE_MEMORY], instance.hypervisor)
+    remote_info = self.rpc.call_instance_info(instance.primary_node,
+                                              instance.name,
+                                              instance.hypervisor)
+    remote_info.Raise()
+    if not remote_info.data:
+      _CheckNodeFreeMemory(self, instance.primary_node,
+                           "starting instance %s" % instance.name,
+                           bep[constants.BE_MEMORY], instance.hypervisor)
 
   def Exec(self, feedback_fn):
     """Start the instance.