In reply to sandy1664:
You need to show how you reset the timer flag. If the timer_flag was set to 0 and back to 1 in zero delay, there is no guarantee that the second forever loop would see timer_flag==0 and disable the label
...
timer_flag = 0;
timer_flag <= 1; // this make sure it is 0 for one delta cycle.
...