That would explain why the "CPU load increases linearly". If I understand the code properly each "+=" operation on the delegate adds another entry to the delegates list of functions to call. Looks like after running for a bit panel1_Paint is probably getting called god knows how many times (when once would suffice). Steve