I think the ability to set immovable at runtime is implemented backwards.
Setting immovable to 'no' makes the object immovable.
Setting immovable to 'yes' stops the current momentum of the object. If it's currently immovable, it becomes movable again.
Minimal example of the bug