If it's an AVR chip, what are you doing inside this loop? make sure nothing touches your stack memory or else RET or RETI instructions will get confused (no out of bound array access and use free() for every malloc() and calloc()). Check the .lss file generated to see if the RJMP is correct and there's no possible path that can lead to the RJMP being skipped. If you can, run the code in the simulator. Also make sure your circuit is not noisy, a bad clock cycle might cause you to skip instructions.