In your sub-vi, you need to open a vi reference to the toplevel vi. Then use the GetControlValue method to get the value of the boolean. Put this in your loop to constantly get the control's value. Now for the problem. Normally you wire the value to the value(Signaling) property to fire the event. However, since you are constantly looping and reading the value, the event fires on every loop. You may have to replace the event structure with the old time poll method. Use a case structure to execute the desired code when the boolean is TRUE. Or just put a case structure inside the event. The event will fire on every loop, but the desired code would only execute on TRUE. Since you have to poll for the toplevel boolean, there is no other way that I can think of to set off the event. Why not put the event structure in the toplevel vi, and call the sub-vi from there.