According to the official (gregorian) calendar, the week number for 29/12/2008 is 1, because after the last day of week 52 (i.e. 28/12) there are three or less days left in
As a workaround, why not use FirstFourDayWeek but add:
FirstFourDayWeek
if ( weekNumber > 52 ) weekNumber = 1;