Hi, When trying the following example with an arm_wince gcc-4.4 cross-compiler, I get an internal compiler error : #import <stdio.h> #import <objc/Object.h> #import <objc/NXConstStr.h> int main( int argc, const char *argv[] ) { int result = 0; @try { printf("in @try\n"); if (argc > 1) { @throw @"Throw !"; //[NSException exceptionWithName:@"Trwoing a test exception" reason:@"Testing the @throw directive." userInfo:nil]; } } @catch (id except) { result = 1; printf("in @catch\n"); } @finally { result += 2; } return result; } objc_try_catch.m: In function 'main': objc_try_catch.m:25: internal compiler error: in gen_eh_region, at except.c:425 Please submit a full bug report, with preprocessed source if appropriate. The problem seems to be caused by an assert checking doing-seh static struct eh_region * gen_eh_region (enum eh_region_type type, struct eh_region *outer) { struct eh_region *new_eh; #ifdef ENABLE_CHECKING gcc_assert (doing_eh (0)); #endif DO I need to pass special arguments when building objc cross compiler ?