> but he is calling Application.ProcessMessages; after Repaint; , so why not > Invalidate or Update ? yes, Invalidate or Update call prior to ProcessMessages would be enough. But as far as I understand, Brad does NOT call it.