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

What's new in this release:
  - New Winelib Internet Explorer application (all 5 lines of it).
  - Several improvements to the font support.
  - More work on the IDL compiler.
  - Faster drawing of the cards in Solitaire (very important feature).
  - A number of fixes for issues found by the Coverity code cheker.
  - 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.12.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.12.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
