A right bit-shift always guarantees that the output is smaller than the input. Because of this, when the reward is 1 satoshi:
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001
and it is time to lower it further, the code will perform a right bit-shift on that value, which will result in a reward of zero:
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
Thus, no more Bitcoins will ever be generated. This is no mistake. Satoshi knew what he was doing.
...and in case anyone is wondering, this will happen approximately in the year 2140.