Move to method
Don't release lock on failure

Thanks, @cyli!