This is release 0.9.6 of Wine, a free implementation of Windows on Unix.

What's new in this release:
  - A bunch of OLE fixes and improvements.
  - DirectSound improvements, including full duplex support.
  - Fix for the Windows metafile vulnerability.
  - Many static control improvements.
  - Some fixes for copy protection support.
  - Lots of bug fixes.

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

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.6.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.6.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/site/download

You will find documentation on

  http://www.winehq.org/site/documentation

You can also get the current source directly from the git or CVS
repositories. Check respectively http://wiki.winehq.org/GitWine or
http://www.winehq.org/cvs for details.

Patches should be submitted to "wine-patches@winehq.org".  Please
don't forget to include a ChangeLog entry. If you submitted a patch,
please check to make sure it has been included in the new release.

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.org
