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

What's new in this release:
  - The usual assortment of MSI improvements.
  - Several bug fixes to the various common controls.
  - Pixel shaders enabled by default in D3D.
  - Various improvements to the build process.
  - Many translation updates.
  - 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.22.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.22.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://www.winehq.org/site/git or
http://www.winehq.org/site/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
