The Wine development release 1.6-rc4 is now available.

What's new in this release (see below for details):
  - Bug fixes only, we are in code freeze.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.6-rc4.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.6/wine-1.6-rc4.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

You will find documentation on http://www.winehq.org/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/git for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

----------------------------------------------------------------

Bugs fixed in 1.6-rc4 (total 38):

   7597  No sound with OSS driver in C&C3
  11224  Throw In (Blitz Basic game) has a memory access violation
  11675  Flatout 2 demo, Battlefield 2 demo, many others need native d3dx9_36.D3DXCreateEffect*
  12771  Multiple graphic problems in "The Witcher"
  13314  Winevdm displays a window when running Civilization I
  13662  dogfood: xchat-2.6.2 is very slow, while updating the window
  14318  Michisoft Reader Studio v1.5a fails to produce LIT file from HTML
  16325  incorrect font rendering for CJK programs
  16784  Babylon 7: Trial mode expires after installation
  18930  IDA Pro: Failing to allocate an enormous image
  20769  crash when exiting Microsoft Flight Simulator 98
  20771  the menu bar doesn't work in M. Flight Simulator 98
  21103  Presentation 14.2 (Neurobehavioral Systems): crashes when displaying video output
  21827  Photoshop 7, Slider disapear
  22291  DC++ hangs on exit
  23504  Subpixel Font rendering wrong for font MS Sans Serif
  23687  err:seh:setup_exception_record stack overflow when start Proteus7 Ares
  23945  Textures are not properly rendered in Deus-Ex:Invisible War
  24230  "Psalmen - Lieder des Lebens" crashes when clicking Next in settings pane
  24796  DIY Kyoto's Holmes fails to start
  25125  Can only print to the default CUPS printer from Visio 5 Professional
  25605  The Settlers 3: Save as bitmap crashes world editor
  26646  Worms Reloaded: sound choppy without hardware sound = emulation
  27658  3dvia plugin installer crashes
  28495  Runes of Magic: sometimes mouse cursor freezes
  29897  Lord Of the Rings Online Slow/Freezes
  29959  Zed: 3D Preview window is blank or doesn't open.
  30578  Disassembly not in fixed-width font in IDA Pro 6.2 demo
  30897  Europa Universalis III demo crashes while 'Loading Map-Sprites...' without native d3dxof
  31729  cl.exe: stack overflow with certain long command lines
  31772  NtQuerySystemInformation doesn't fill ReturnLength properly with SystemProcessInformation
  31812  Silverlight 4.x/5.x windows have repainting problems
  31908  Garena Blackshot does login
  32820  Offline rekening overzicht, orov doesn't work
  33283  Configuration of WM_NAME is delayed for virtual desktop
  33753  Titan Quest : Multiplayer not working
  33865  Regression in a specialized program
  33883  Scirra httpapi.dll error trying to Run a game

----------------------------------------------------------------

Changes since 1.6-rc3:

Alexandre Julliard (22):
      gdi32: Cache the font smoothing parameters.
      kernel32: FormatMessage precision arguments are integers.
      comdlg32: Add support for the CF_NOVERTFONTS flag.
      clock: Don't offer vertical fonts in the font dialog.
      notepad: Don't offer vertical fonts in the font dialog.
      winecfg: Don't offer vertical fonts in the font dialog.
      wineconsole: Don't offer vertical fonts in the font dialog.
      winefile: Don't offer vertical fonts in the font dialog.
      wordpad: Don't offer vertical fonts in the font dialog.
      make_unicode: Move codepage file output code to a common routine and make default characters configurable.
      libwine: Add support for codepage 10001 (Mac Japanese).
      libwine: Add support for codepage 10002 (Mac Traditional Chinese).
      libwine: Add support for codepage 10003 (Mac Korean).
      libwine: Add support for codepage 10008 (Mac Simplified Chinese).
      libwine: Add support for codepage 10010 (Mac Romanian).
      libwine: Add support for codepage 10017 (Mac Ukrainian).
      libwine: Add support for codepage 10021 (Mac Thai).
      libwine: Add support for codepage 10082 (Mac Croatian).
      krnl386: Create a new console for DOS binaries.
      winevdm: Make it a GUI application to avoid a spurious console.
      user32: Fetch the window menu again after sending initialization messages.
      advapi32: Fix ReportEvent parameter types in the spec file.

Andrew Eikum (4):
      winbase.h: Add GetFileInformationByHandleEx.
      oleaut32: Register the typelib's path without WOW64 redirection.
      oleaut32: Load referenced typelibs in the same architecture.
      oleaut32: Use typelib's pointer size, not system's.

André Hentschel (15):
      oleaut32/tests: Get rid of IS_ANCIENT in vartest.
      oleaut32/tests: Get rid of HAVE_OLEAUT32_RECORD in vartest.
      oleaut32/tests: Don't use autoheader styled define in vartest.
      oleaut32/tests: Get rid of IS_ANCIENT in vartype.
      oleaut32/tests: Get rid of HAVE_OLEAUT32_RECORD in vartype.
      oleaut32/tests: Get rid of HAVE_OLEAUT32_DECIMAL in vartype.
      oleaut32/tests: Get rid of HAVE_OLEAUT32_CY in vartype.
      oleaut32/tests: Don't use autoheader styled defines in vartype.
      oleaut32/tests: Don't use autoheader styled defines in varformat.
      oleaut32/tests: Get rid of IS_ANCIENT in safearray.
      oleaut32/tests: Get rid of HAVE_OLEAUT32_RECORD in safearray.
      oleaut32/tests: Get rid of HAVE_OLEAUT32_DECIMAL in safearray.
      oleaut32/tests: Get rid of HAVE_OLEAUT32_R8 in safearray.
      oleaut32/tests: Don't use autoheader styled defines in safearray.
      oleaut32/tests: Use BOOL instead of int when appropriate.

Austin English (1):
      winex11.drv: Print the architecture when showing driver problems.

Bruno Jesus (2):
      po: Update Brazilian Portuguese translation.
      po: Update Brazilian Portuguese translation.

Caibin Chen (1):
      po: Update Simplified Chinese Translation.

Christian Costa (1):
      d3dxof: Add support for case sensitive legacy type indexColor.

Dmitry Timoshkov (4):
      kernel32/tests: Add a test for VirtualAlloc called on a mapped PE section.
      kernel32/tests: Add more VirtualAlloc and VirtualProtect tests.
      kernel32: Correct HeapFree .spec parameter type.
      ntdll: Correct RtlFreeHeap .spec parameter type.

Erich Hoover (1):
      ws2_32: Fix interface-bound filter to accept locally generated targeted packets.

Frédéric Delanoy (1):
      tools: Update winemaker manpage French translation.

Hans Leidekker (3):
      ws2_32/tests: Avoid races.
      dssenh/tests: Fix test failures on 64-bit Vista.
      winhttp/tests: Add some tests for WinHttpDetectAutoProxyConfigUrl.

Huw Davies (1):
      comdlg32: Don't call the callback if it's not set.

Jacek Caban (5):
      ole32: Don't call AddConnection for weak references.
      ole32/tests: Added tests for external connections stored in ROT.
      oleaut32/tests: Added external connections tests for MSHLFLAGS_TABLEWEAK marshaling.
      mshtml: Don't declare empty interface for nsCycleCollectionISupports.
      secur32: Don't use deprecated gnutls_certificate_credentials.

Julian Rüger (1):
      server: Update German translation of manpage.

Ken Thomases (2):
      winemac: Dispatch key events directly to window to be sure to get key-up events.
      winemac: Fix ordering of windows owned by same owner when on inactive desktop space.

Marcus Meissner (8):
      dbghelp: Free root in error case (Coverity).
      dbghelp: Free srcpath in stabs handling (Coverity).
      gdi32: Close handle in error path (Coverity).
      gdi32: Close handle in mfdrv (Coverity).
      msvf32: Fixed incorrect sizeof (Coverity).
      ole32: LeaveCriticalSection in one exit case (Coverity).
      ole32: Fixed bad sizeof()s in composite moniker (Coverity).
      winmm: Fix incorrect parameter for test debug (Coverity).

Matteo Bruni (2):
      wined3d: Fix handling of cnd instruction with coissue flag.
      d3d9/tests: Improve cnd instruction test.

Michael Stefaniuc (1):
      po: Update the Romanian translation.

Mykola Zadorozhnyy (1):
      po: Update Ukrainian translation.

Petr Kočandrle (1):
      po: Fix some Czech spelling errors.

Piotr Caban (1):
      msvcrt: Added _wcsicmp_l implementation.

Qian Hong (2):
      msctf: Added stub TF_CreateLangBarItemMgr.
      include: Added missing declaration for some msctf APIs.

Roger Koot (1):
      po: Updated Dutch translation.

Stefan Leichter (1):
      msvcp100/tests: Fix dynamically loaded functions for platform arm.

Volkan Gezer (1):
      po: Updated Turkish Translation.

--
Alexandre Julliard
julliard@winehq.org
