Index: mcs/class/System.Core/System/TimeZoneInfo.cs =================================================================== --- mono-2.6.7/mcs/class/System.Core/System/TimeZoneInfo.cs (revision 160268) +++ mono-2.6.7/mcs/class/System.Core/System/TimeZoneInfo.cs (working copy) @@ -380,9 +380,22 @@ else ParseRegTzi(adjustmentRules, 1, 9999, reg_tzi); - return CreateCustomTimeZone (id, baseUtcOffset, display_name, standard_name, daylight_name, ValidateRules (adjustmentRules).ToArray ()); + return CreateCustomTimeZone (id, baseUtcOffset, display_name, standard_name, daylight_name, + (AdjustmentRule []) ValidateRules (adjustmentRules).ToArray ()); } + static List ValidateRules (List adjustmentRules) + { + AdjustmentRule prev = null; + foreach (AdjustmentRule current in adjustmentRules.ToArray ()) { + if (prev != null && prev.DateEnd > current.DateStart) { + adjustmentRules.Remove (current); + } + prev = current; + } + return adjustmentRules; + } + private static void ParseRegTzi (List adjustmentRules, int start_year, int end_year, byte [] buffer) { //int standard_bias = BitConverter.ToInt32 (buffer, 4); /* not sure how to handle this */ @@ -895,22 +908,11 @@ } return CreateCustomTimeZone (id, baseUtcOffset, id, standardDisplayName); } else { - return CreateCustomTimeZone (id, baseUtcOffset, id, standardDisplayName, daylightDisplayName, ValidateRules (adjustmentRules).ToArray ()); + return CreateCustomTimeZone (id, baseUtcOffset, id, standardDisplayName, daylightDisplayName, + (AdjustmentRule []) ValidateRules (adjustmentRules).ToArray ()); } } - static List ValidateRules (List adjustmentRules) - { - AdjustmentRule prev = null; - foreach (AdjustmentRule current in adjustmentRules.ToArray ()) { - if (prev != null && prev.DateEnd > current.DateStart) { - adjustmentRules.Remove (current); - } - prev = current; - } - return adjustmentRules; - } - static Dictionary ParseAbbreviations (byte [] buffer, int index, int count) { var abbrevs = new Dictionary ();