This is release 20010824 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 "wine-patches@winehq.com".  Please don't
forget to include a ChangeLog entry.

WHAT'S NEW with Wine-20010824: (see ChangeLog for details)
	- Inter-process SendMessage support.
	- More DDE improvements.
	- Preparation work for shared window handles.
	- Several debugger improvements.
	- Better GDI objects management.
	- 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-20010824.tar.gz
  ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/ALPHA/wine/development/Wine-20010824.tar.gz
  ftp://ftp.fu-berlin.de/unix/linux/mirrors/sunsite.unc.edu/ALPHA/wine/development/Wine-20010824.tar.gz
  ftp://orcus.progsoc.uts.edu.au/pub/Wine/development/Wine-20010824.tar.gz

It should also be available from any other site that mirrors ibiblio.org.
For more download locations, see http://ftpsearch.lycos.com. These
locations also hold pre-built documentation packages in various
formats: wine-doc-html.tar.gz, wine-doc-txt.tar.gz, wine-doc.pdf.gz
and wine-doc.ps.gz.

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 receive by mail a patch against the previous release
when a new one is released, you can subscribe to the mailing list at
http://tiger.informatik.hu-berlin.de/cgi-bin/mailman/listinfo/wine-patches.

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
