Hi I'm using freetdm from git downloaded on 30.1.2012. On windows I had no problems, but on sles 11 sp1 64bit call setup message was missing caller and called information elements. I've tracked down the problem to file src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c, into function get_trillium_val() Particularly, when get_trillium_val(ton_codes, 0, IN_TON_UNK) is called, 0xe6 is returned (which is from the nsf_spec_codes[] table) I think the loop should have some strict terminate condition but not sure about the write intention. My workaround to be able to continue development is following diff -urN src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support_mod.c --- src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c 2012-02-01 14:02:30.000000000 +0000 +++ src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support_mod.c 2012-02-01 14:02:08.000000000 +0000 @@ -106,10 +106,11 @@ static uint8_t get_trillium_val(ftdm2trillium_t *vals, uint8_t ftdm_val, uint8_t default_val) { ftdm2trillium_t *val = vals; - while(val++) { + while(val) { if (val->ftdm_val == ftdm_val) { return val->trillium_val; } + val++; } return default_val; } @@ -117,10 +118,11 @@ static uint8_t get_ftdm_val(ftdm2trillium_t *vals, uint8_t trillium_val, uint8_t default_val) { ftdm2trillium_t *val = vals; - while(val++) { + while(val) { if (val->trillium_val == trillium_val) { return val->ftdm_val; } + val++; } return default_val; } Is there some other way how to go around? Thank you Juraj