This is release 950620 of Wine the MS Windows emulator.  This is still a
developer's only release.  There are many bugs and many unimplemented API
features.  Most applications still do not work.

Patches should be submitted to "wine-new@amscons.com".  Please don't forget
to include a ChangeLog entry.  I'll make a new release every other Sunday.

WHAT'S NEW with Wine-950620: (see ChangeLog for details)
	- Many fixes to edit and listbox controls.
	- Better MDI code.
	- Many local heap fixes.
	- Some built-in DLLs are now disabled by default.
	- 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:

    sunsite.unc.edu:/pub/Linux/ALPHA/wine/Wine-950620.tar.gz
    tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-950620.tar.gz
    ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-950620.tar.gz
    ftp.funet.fi:/pub/OS/Linux/ALPHA/Wine/Wine-950620.tar.gz
    aris.com:/pub/linux/ALPHA/Wine/development/Wine-950620.tar.gz

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

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

New developers should read the info files available from the ftp sites.
The files NEWBIE-PROJECTS, DEVELOPERS-HINTS and Wine.FAQ are required
reading for new developers.

Wine is available thanks to the work of Bob Amstadt, Dag Asheim,
Martin Ayotte, Ross Biro, Erik Bos, Fons Botman, John Brezak,
Andrew Bulhak, John Burton, Paul Falstad, Olaf Flebbe, Peter Galbavy,
Cameron Heide, Jeffrey Hsu, Miguel de Icaza, Alexandre Julliard,
Jon Konrath, Scott A. Laird, Martin von Loewis, Kenneth MacDonald,
Peter MacDonald, William Magro, David Metcalfe, Michael Patra,
John Richardson, Johannes Ruscheinski, Thomas Sandford,
Constantine Sapuntzakis, Bernd Schmidt, Yngvi Sigurjonsson, Rick Sladkey,
William Smith, Erik Svendsen, Goran Thyni, Jimmy Tirtawangsa, Jon Tombs,
Linus Torvalds, Michael Veksler, Carl Williams, Karl Guenter Wuensch,
Eric Youngdale, and James Youngman.

--
Alexandre Julliard
julliard@sunsite.unc.edu
