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

What's new in this release:
  - Winelib Explorer app (just a wrapper around winefile for now).
  - Debugger cleanups and improvements.
  - Many wininet fixes.
  - Better autogenerated API manpages.
  - A bunch of Korean translations.
  - 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.2.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.2.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
