I don't think it is a bug. This has to do with events and how the usage or not usage of SLEEP impacts event processing. Setting the text color is an event (a guess here, due to what you are experiencing). If you do not use sleep and process your Do While loop, events are generated, but not executed until the Do While finishes processing and your code finishes and returns in such a way that event processing happens (by waiting for the next event) and then all the events are processed at once. Using SLEEP, you can "force" events to be processed. In your first listing (post #1) you create a "TextColor" event, use SLEEP to have it processed and then set your text. As you can see, the two items are out of sync. In your second example, you add text, use SLEEP to let the system process events and then create a "TextColor" event. Once more, creating the text and setting the color are out of sync. Finally, you create the text, then change the color and then use SLEEP to process the events in the correct order.