>I tried both suggestions with no luck. Where does the DOEVENTS go? Maybe I had it in the wrong place.
Sorry, you put the Thisform.Refresh() at the end of the Timer event and, as Jos said, put the DoEvents into the processing code like this:
LOCAL loSplash
DOFORM splash NAME loSplash LINKED
loSplash.SHOW()
*** Call first functionOpenTables()
*** Update SplashDOEVENTS*** Call next function
SetUpLibs()
*** Update SplashDOEVENTS