This is release 20001026 of Wine, a free implementation of Windows on
Unix.  This is still a developers only release.  There are many bugs
and unimplemented features.  Most applications still do not work
correctly.

Patches should be submitted to "julliard@winehq.com".  Please don't
forget to include a ChangeLog entry.

WHAT'S NEW with Wine-20001026: (see ChangeLog for details)
	- Tons of header fixes for Winelib compiles.
	- Exec support from DOS mode.
	- Many internationalization fixes.
	- The usual assortment of common controls improvements.
	- Lots of bug fixes.

See the README file in the distribution for installation instructions.

Because of lags created by using mirror, this message may reach you before
the release is available at the ftp sites.  The sources will be available
from the following locations:

  http://www.ibiblio.org/pub/Linux/ALPHA/wine/development/Wine-20001026.tar.gz
  ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-20001026.tar.gz
  ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/Wine-20001026.tar.gz
  ftp://orcus.progsoc.uts.edu.au/pub/Wine/development/Wine-20001026.tar.gz

It should also be available from any site that mirrors tsx-11 or sunsite.

You can also get the current source directly from the CVS tree. Check
http://www.winehq.com/dev.html for details.

If you submitted a patch, please check to make sure it has been
included in the new release.

If you want to get the new releases faster, you can subscribe to the
wine-patches mailing list by sending a mail containing 'subscribe
wine-patches your_address' to majordomo@tiger.informatik.hu-berlin.de.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

--
Alexandre Julliard
julliard@winehq.com
