You will not bealive it.

I changed my Power Basic IDLE message pump (executed during WHILE/WEND operations) from:
[code=thinbasic]
MACRO NewDoEvents
MacroTemp nde_Msg
Dim nde_Msg As TagMsg
If PeekMessage(nde_Msg, %Null, 0, 0, %PM_REMOVE) Then
TranslateMessage nde_Msg
DispatchMessage nde_Msg
End If
END MACRO

[/code]

to

[code=thinbasic]
MACRO NewDoEvents
'GLOBAL nde_Msg AS TagMsg
MacroTemp nde_Msg
Dim nde_Msg As TagMsg
If PeekMessage(nde_Msg, %Null, 0, 0, %PM_REMOVE) <> 0& Then
If nde_Msg.message = %WM_QUIT Then
Else
TranslateMessage nde_Msg
DispatchMessage nde_Msg
End If
End If
END MACRO
[/code]

I think the change that effect CPU is from:
[code=thinbasic] If PeekMessage(nde_Msg, %Null, 0, 0, %PM_REMOVE) Then[/code]
to
[code=thinbasic] If PeekMessage(nde_Msg, %Null, 0, 0, %PM_REMOVE) <> 0& Then[/code]

I will investigate further about this.

Ciao
Eros