http://bugs.winehq.org/show_bug.cgi?id=18991
--- Comment #59 from Dmitry Timoshkov dmitry@codeweavers.com 2009-08-17 01:39:50 --- This is a bug in Mono, and they have removed all asserts due to reports from Windows users.
Here is the bug description:
In mono-2.4.2.3/mono/metadata/icall.c, ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData() they call GetTimeZoneInformation(), and convert_to_absolute_date() assumes that the returned DST/STD time is always in the day-of-week format (wYear == 0). But that's not always the case. MSDN: "If the wYear member is not zero, the transition date is absolute; it will only occur one time. Otherwise, it is a relative date that occurs yearly."
In the mono-2.4.2.3 sources all asserts after convert_to_absolute_date() failuers are commented out.
The Mono bug has been fixed by the following commit:
2007-12-29 Miguel de Icaza miguel@novell.com
* icall.c (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the assert into a negative result, the managed code already coped with that.
Some folks on Windows reported this error.