Is there something I'm not taking into consideration? As far as I can tell the code should work ok.