Just changed the instruction execution to run with a temporary crane stack.
First all crates are fetched from the source stack and put onto the crane stack.
Afterwards all crates on the crane stack are put onto the target stack.
Both operations use stacks and therefore result in a same-order movement in the end.