Concurrency.
Your for loop is completing and incrementing currentCommand before your threads are actually starting.
Despite calling thread.start() - they don't actually have to start "right away."
This is why you also never see "Running = 0".
When your 1st spawned thread finally runs, the for loop has already completed, and currentCommand was incremented to 1 before the thread even ran...
A hack fix would be to add a thread.join(???) at the end of your for loop (after thread.start(), where ??? is just long enough to start your Command.
Not pretty, but it'll likely work.
Even better, pass currentCommand as a parameter to your threads... something like:
http://stackoverflow.com/questions/8...-a-java-thread
Good luck!
__________________
In life, what you give, you keep. What you fail to give, you lose forever...