Windows 98 build 2001

Windows 98 build 2001 is an update to Windows 98 Service Pack 1, which fixes several issues relating to the Y2K bug. While the system is referred to by the RTM build's build number, it calls itself build 2001 in some areas.

It should not be confused with various pre-release builds also branded as "Service Pack 1", which were actually Second Edition builds in the form of an update package for First Edition. Those builds also included feature and application updates not included in the final Service Pack 1, though many of these updates were later made available to First Edition users separately.

Issues addressed by this update

 * OLE Automation - The Microsoft Automation Library contains routines for interpreting two-digit years and provides convenience methods for applications to create unambiguous (serial) dates. In Windows 98, the current two-digit year cutoff is 2029. This means that two-digit years starting with 30 will be interpreted as 20th century, i.e. 1/1/30 will be converted to 1/1/1930, regardless of the user's "Control Panel"\"Regional Settings"\"Date" how the century window in the tab is set.
 * DOS (Xcopy) - When using xcopy in real mode with the optional argument /D:date, xcopy does not accept years entered as 2 digits, except for years 80 - 99. The message "Invalid date" will be displayed. When using xcopy in protected mode (from within Windows), 2-digit dates are accepted, but are recognized as up to the 20th century (02/05/01 is treated as 02/05/1901).
 * MQRT.DLL - Microsoft Message Queue (MSMQ) is installed as part of Personal Web Server and works with two types of digital certificates (external and internal). Internal certificates are a concept supported by MSMQ that allow MSMQ applications to assign certificates to send authenticated messages. Code to create an internal certificate request for MSMQ 1.0 requests to set the validity period of newly created certificates to 10 years. The problem arises when MSMQ tries to create such certificates on February 29, 2000 (or any leap year like 2004, 2008, etc.). This fails because it calculates validity by adding 10 years to the current date, yielding 2/29/2010. This is an illegal date because 2010 is not a leap year.