More info.
I also have an interrupt service routine:
interrupt 17 void Viic_isr(void){
IICS_IICIF = 1;
}
Before the interrupt service routine is called, IICS is 166 (i.e TCF, SRW and IICIF are set). After acknowledging the interrupt IICS reads for one cycle 164 (i.e TCF and SRW are set) after which it becomes 166 again and the process repeats itself.