The other thing is (an only Ruud can answer this) is that Ruud might be setting Kixtart's @ERROR only when his C++ FAILED() macro says TRUE ... that is to say - @ERROR will only be either 0 (success) or < 0 (failed) ...

The problem is informationals (which is rarer and prolly why this isn't seen much) ... if a COM object returns an informational does Kixtart set the value of @ERROR to the informational value, or does it keep @ERROR = 0 ?

Only way to tell (unless Glenn you have seen this) is to repro it in Kixforms or something - and see how Kixtart reacts.