Cos you got a proc called join and this like instead of using the TCL join command will call yours, hence the error.
You should avoid using the TCL language functions as proc names, in your case having a proc called join. Rename it to something like mystuff:join or whatever.
Once the game is over, the king and the pawn go back in the same box.