This is release 990731 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@lrc.epfl.ch".  Please don't
forget to include a ChangeLog entry.

WHAT'S NEW with Wine-990731: (see ChangeLog for details)
	- Separation of spec files into their respective DLLs.
	- Still more painting fixes.
	- Many SHELL and COMMDLG 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:

  ftp://metalab.unc.edu/pub/Linux/ALPHA/wine/development/Wine-990731.tar.gz
  ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-990731.tar.gz
  ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/Wine-990731.tar.gz
  ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-990731.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@lrc.epfl.ch
