Interrupts and timers

Now I get it!

When I use

TIFR1 |= (1 << TOV1)

and let's say another Bit in TIFR1 is 1, so for example TIFR1 is 0b00000011 (TOV1 is Bit0). Then I create (1 << TOV1) which is the same as 0b00000001.

Now I use the or operator on both Bytes:

0b00000011 TIFR1
|0b00000001 (1 << TOV1)
=0b00000011

so in fact I write Bit0 and Bit1 value = 1 to the register.

Is that what you mean?