Thanks for the replies all round - changing the tiimeout solved the immediate problem.
My application is actually much more complex than this - it's a messaging system and dialler that runs on a PDA communicating with the outside world via serial port or bluetooth to a modem.
I originally wrote it as a demo using parallel timed loops communicating via queues - one for serial, one for each aspect of the UI system that required different timing, but the delay thru the app was horrible and unpredictable, sometimes up to 30s between when you pushed the button and when it came out the serial port. It was my first serious LV app (this is my second!) so I'm sure there are heaps of mistakes.
I decided to rewrite it using Events for the UI inside a State Machine, with queues to handle the comms between processes, notably the serial port and the UI / message handlers.
However the serial will not run inside the state machine becuase the Event structure for the UI locks the machine until an event happens (I think?), so I put a timed loop outiside to handle the serial comms, and another which needs to generate data for the serial port and deal with data from it in nreal time, independent of the UI - see the attached.
Any useful comments appreciated - I'm demonstrating it tomorrow at a trade show and it's far from finished since I decided on the complete rewrite only a couple of days ago.
Thanks,
Phil