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

WHAT'S NEW with Wine-960516: (see ChangeLog for details)
	- Tons of Win32 support.
	- Several local heap fixes.
	- Window management 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:

    sunsite.unc.edu:/pub/Linux/ALPHA/wine/development/Wine-960516.tar.gz
    tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-960516.tar.gz
    ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-960516.tar.gz
    aris.com:/pub/linux/ALPHA/Wine/development/Wine-960516.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.

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 Bob Amstadt, Dag Asheim,
Martin Ayotte, Ross Biro, Uwe Bonnes, Erik Bos, Fons Botman, John Brezak,
Andrew Bulhak, John Burton, Niels de Carpentier, Roman Dolejsi,
Frans van Dorsselaer, Paul Falstad, Olaf Flebbe, Peter Galbavy,
Ramon Garcia, Hans de Graaff, Charles M. Hannum, John Harvey,
Cameron Heide, Jochen Hoenicke, Onno Hovers, Jeffrey Hsu,
Miguel de Icaza, Jukka Iivonen, Alexandre Julliard, Jochen Karrer,
Andreas Kirschbaum, Albrecht Kleine, Jon Konrath, Alex Korobka,
Greg Kreider, Anand Kumria, Scott A. Laird, Martin von Loewis,
Kenneth MacDonald, Peter MacDonald, William Magro, Juergen Marquardt,
Marcus Meissner, Graham Menhennitt, David Metcalfe, Steffen Moeller,
Philippe De Muyter, Itai Nahshon, Michael Patra, Jim Peterson,
Robert Pouliot, Keith Reynolds, John Richardson, Johannes Ruscheinski,
Thomas Sandford, Constantine Sapuntzakis, Daniel Schepler, Ulrich Schmid,
Bernd Schmidt, Yngvi Sigurjonsson, Rick Sladkey, William Smith,
Erik Svendsen, Tristan Tarrant, Andrew Taylor, Duncan C Thomson,
Goran Thyni, Jimmy Tirtawangsa, Jon Tombs, Linus Torvalds,
Gregory Trubetskoy, Michael Veksler, Sven Verdoolaege, Eric Warnke,
Manfred Weichel, Morten Welinder, Jan Willamowius, Carl Williams,
Karl Guenter Wuensch, Eric Youngdale, and James Youngman.

--
Alexandre Julliard
julliard@lrc.epfl.ch
