diff --git a/epan/dissectors/packet-isup.c b/epan/dissectors/packet-isup.c index fd47fdd9f1..92737264e0 100644 --- a/epan/dissectors/packet-isup.c +++ b/epan/dissectors/packet-isup.c @@ -6763,8 +6763,10 @@ dissect_isup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) message_type = tvb_get_guint8(tvb, CIC_OFFSET + CIC_LENGTH); /* dissect CIC in main dissector since pass-along message type carrying complete IUSP message w/o CIC needs recursive message dissector call */ - cic = tvb_get_letohs(tvb, CIC_OFFSET) & 0x0FFF; /*since upper 4 bits spare */ - + if (mtp3_standard == ITU_STANDARD) + cic = tvb_get_letohs(tvb, CIC_OFFSET) & 0x0FFF; /*since upper 4 bits spare */ + else if (mtp3_standard == ANSI_STANDARD) + cic = tvb_get_letohs(tvb, CIC_OFFSET) & 0x3FFF; /*since upper 2 bits spare */ pinfo->ctype = CT_ISUP; pinfo->circuit_id = cic;