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

What's new in this release:
  - Support for Find function in regedit.
  - Winelib app to eject a CD.
  - Many MSI improvements.
  - Better support for running text-mode apps without X.
  - Improved support for various code obfuscation tools.
  - 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.1.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.1.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 CVS tree. Check
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
