Is it really necessary that wxCHECK needs a semicolon? With the current implementation the following statements or similar ones are impossible: if (!(String.IsEmpty())) wxCHECK(String.ToULong(&Number),false); else Number = 0; Hartwig