....rcaputo is right..... keep all Tk code confined to the parent..... if you spawn forked processes, create entirely new Tk mainloops in the fork.....you can have many forked off independent Tk windows....but they can't interact without advanced IPC.... see perldoc perlipc