The following program compiles but crashes with an integer range error when it gets to the comparison: {$R+} var a : cardinal; b : longint; begin a := 0; b := -1; if a > b then writeln ('OK'); end. Am I missing something, or is this a compiler bug? Mark