diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 3b445cefe832fc79edbb126bba0b10fcaa80eeea..40dca63f54817c0140816760b9cef1bab7264afd 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -8813,6 +8813,11 @@ class LUInstanceCreate(LogicalUnit):
     if self.op.iallocator is not None:
       self._RunAllocator()
 
+    # Release all unneeded node locks
+    _ReleaseLocks(self, locking.LEVEL_NODE,
+                  keep=filter(None, [self.op.pnode, self.op.snode,
+                                     self.op.src_node]))
+
     #### node related checks
 
     # check primary node