Here's a time zone that begins this year. Oddly, the RRULE and DTSTART don't match. For example, the 3rd Saturday in October 2013 is actually the 19th, not the 20th. This causes libical to skip 2013 and start the time zone change expansion in 2014. The result is events in 2013 appear at the wrong time. This is a real live VTIMEZONE from Outlook.
The attached patch will force the time zone's DTSTART to get added to the changes array.