diff --git a/ANNOUNCE b/ANNOUNCE
index 76b05b8..5b484af 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,12 +1,12 @@
-The Wine development release 1.4-rc4 is now available.
+The Wine development release 1.4-rc5 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://ibiblio.org/pub/linux/system/emulators/wine/wine-1.4-rc4.tar.bz2
-  http://prdownloads.sourceforge.net/wine/wine-1.4-rc4.tar.bz2
+  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.4-rc5.tar.bz2
+  http://prdownloads.sourceforge.net/wine/wine-1.4-rc5.tar.bz2
 
 Binary packages for various distributions will be available from:
 
@@ -22,218 +22,194 @@
 
 ----------------------------------------------------------------
 
-Bugs fixed in 1.4-rc4:
+Bugs fixed in 1.4-rc5:
 
-   9728  Image and icons corrupts in ShutterFly 2.2
-  10872  World In Conflict silently exits on start
-  13017  Photoshop CS2, info window - missing info.
-  13359  Adobe Reader 8 plugin crashes on EULA in Firefox 3 [dogfood]
-  13832  Circuitmaker schematic does not print to a printer
-  14376  Duelpro's "Yu-gi-oh News" window unresponsive
-  14648  SigmaPlot (9,10 and 11) y-axis title rotated and shifted
-  15574  PhotoShop CS2: Photoshop Save As.. dialog ignores filename input on jpegs and names them ".jpg" (Workaround exists)
-  15848  PokerTracker hangs on start up
-  17345  So Blonde: Crashes when pick up some items
-  17885  Focus frame too big in fable
-  18436  Crash in winevdm for some 16-bit programs
-  19691  Visual C++ 2005 Express: can't uninstall or reinstall
-  19885  America's Army 3.0 fails to start
-  20110  Visual C++ 2005 Express SP1 install fails
-  21013  Table of contents is unusable in Wine's CHM viewer application
-  21217  Menu item for "Visual C++ 2005 Express Command Prompt" busted
-  21326  "Sticky" right click in MS Paint
-  21719  Cannot install Adobe Photoshop CS2 due to msi_cabextract failure
-  22996  Altium Designer print preview displays inverted text in schematic views
-  24204  wine notepad crashes: BadLength (poly request too large or internal Xlib length error)
-  24583  Visual Studio 2008 (VC9) installer crashes
-  24751  Santa Clause in Trouble does not start
-  26697  F-22 Raptor freezes when loading a mission
-  27246  Control panel items description truncated
-  27355  SumatraPDF 1.6: tooltips leave black rectangles when disappearing
-  27381  Fallout New Vegas hangs by save - backtrace
-  27402  Clifford's Thinking Adventures: mouse pointer goes wacky or disappears entirely
-  27750  No dynamic shadows with pixel shaders enabled in Tomb Raider: Anniversary
-  28388  winmm/midi.ok deadlocks and crashes occasionally?
-  28413  Sound play in games and programs causes brief "pauses"
-  28638  Magic the Gathering - Duels of the Planeswalkers 2012: Sound only works in Emulated mode
-  28706  Test Drive Unlimited: No ingame sound
-  28914  Crimzon Clover 1.01 shows only black screen
-  29035  winmm player deadlocks after failing to launch a concurrent one
-  29382  Internet Explorer 8's developer tools window hangs after changing document mode
-  29488  BurnPlot sporadically fails to start with an X error (invalid Window parameter)
-  29584  World of Warcraft 64bit client hangs at world load
-  29667  Dragon Age: Origins DVD authenticity checks fail (DVD_LAYER_DESCRIPTOR big endian values need to be converted host endianness before being returned to caller)
-  29686  ElsterFormular's setup wants at least MSI installer version 3.1 on x86_64
-  29704  Team Fortress 2 - total black screen when displaying Jarate effect
-  29722  win3.x app fail to display the printer settings dialog
-  29800  Gangsters 2 Demo (German): No aperture effect in the main menu
-  29828  Trackbar control doesn't show tick marks when TBS_AUTOTICKS is used
-  29839  ALSA driver cannot enumerate software (slave) devices from .asoundrc
-  29855  Bomb Squad 2 display wrong
-  29879  Wine's help viewer crashes on a particular CHM file
-  29886  Microsoft Visual Studio 2005: "attach to process" crashes IDE (marshalling/unmarshalling of GUID struct -> VT_CARRAY type)
-  29887  FarCry 1.4 crashed while use mouse wheel
-  29898  IE6's back/forward buttons show the history dropdown menu - real dropdown arrows missing
+   5485  Command and Conquer Generals (and Zero Hour) hang on splash screen
+   8871  No text displayed in Bloodrayne2
+  11133  Shade: Wrath of Angels Demo - no graphics drawn in game
+  13156  ETO_OPAQUE and clear style are not transparent on a bitmap
+  14075  Beyond Divinity: screen corruption
+  15397  gdi32: path.c fails to build with gcc 4.2, -Werror -O3
+  16557  print preview broken
+  17201  No add-ins loadable in Office 2003 PowerPoint
+  18975  RealMYST crashes on launch
+  19531  Earthworm Jim: sound crackles, stutters and repeats.
+  20202  Everquest 1 (eqgame.exe) crashes right before character enters world
+  20333  Azteca and Diamond Drop 2 crash
+  20783  TradeTiger does not show the login window correctly
+  21293  Comanche 3 freezes after a mission
+  21577  MYOB: Cannot add custom logo to template
+  22187  Alice 2.2 fails with "can't create Java VM"
+  22269  Cry of the Infected demo fails with "runtime error 7018"
+  22838  Corel Draw 11 not loading
+  25153  Windows Live Essentials beta (webc variant) doesn't detect .NET Framework 3.0 installation (Mono/Registry)
+  25214  MS Office PowerPoint 2007 freezes when right-click on top bar
+  26878  No sound in Sim City 3000 Unlimited
+  26918  Atlantis II crashes when changing screen resolution
+  27254  Astro Avenger crashes on launch (with built-in d3dxof.dll)
+  27971  Installation of FooBar.msi using msiexec fails with /qb switch (unattended with basic UI)
+  28066  Sound stops after some time (restarting sound in game usually possible)
+  28404  Incoming Forces: visual glitches
+  28579  Comanche 3 menu is unusable because of graphic issues
+  28618  BC Kings refuses to start without DirectSound hardware acceleration
+  28620  Assassin's Creed: eagle's eye graphic glitch with postprocessing enabled
+  28859  SDP Downloader: access violations when deleting url
+  29750  Spotify crashes when searching song or artist with the search box
+  29767  ellipse_first_quadrant() runs into dead loop for large width and height because of negative overflow
+  29904  Perfect World: Latest Descent patch crashes Launcher window
+  29905  Microsoft Visual Studio 2008: attaching to process fails with "unknown error: 0x80070003" (support of "Session" namespace for named objects needed)
+  29919  PanzerKiller hangs with a black screen on start
+  29939  MS Paint's bucket fill tool doesn't work
+  29967  Cyberboard Player hangs when opening a game
+  29988  Wordpad crashes on opening the printer setup dialog
 
 ----------------------------------------------------------------
 
-Changes since 1.4-rc3:
+Changes since 1.4-rc4:
 
-Akihiro Sagawa (2):
-      po: Update Japanese translation.
-      comdlg32: Apply 3D effects to sample text area.
+Alex Henrie (1):
+      po: Update Catalan translation.
 
-Alexander Kochetkov (1):
-      gdi32: Fix text baseline calculation in compatible mode.
+Alexandre Julliard (7):
+      gdi32: Paint everything in ExtFloodFill when the DIB doesn't have a clip region.
+      gdi32: Don't paint the text rectangle in transparent mode unless a rectangle is explicitly specified.
+      gdi32: Avoid overflows for invalid coordinates in line clipping.
+      wineps: Convert path points to device coords since GetPath returns logical coords.
+      comdlg32: Avoid crash when driver name doesn't contain a backslash.
+      gdi32: Use 64-bit values when computing ellipses to avoid overflows.
+      gdi32: Avoid using uninitialized value in DIB pattern enhmetafile record.
 
-Alexandre Julliard (10):
-      hhctrl.ocx: Fix a buffer allocation size.
-      wineps16.drv: Call winspool functions instead of removed wineps.drv entry points.
-      winex11: Make sure the clip window is created as soon as possible.
-      gdi32: Don't clip to the visible rectangle for screen DCs.
-      rpcrt4: Add ref counting to RPC connections, and grab a reference while processing an RPC packet.
-      user32: Fix GetKeyNameText returned length.
-      user32: Add mouse tracking on caption right-clicks to avoid messing with the capture.
-      dinput: Filter out mouse wheel messages in exclusive mode.
-      shell32: Define our own structure for control panel info, with more space for strings.
-      gdi32: Fix font orientation when mirroring in compatible mode.
+Andrew Eikum (1):
+      wineoss.drv: Fix DeleteTimerQueueTimer usage.
 
-Andrew Eikum (3):
-      dsound: Add some more DSCAPS flags.
-      mmdevapi: Only return ACTIVE devices from GetDefaultAudioEndpoint.
-      winealsa.drv: Optionally load extra ALSA device names from the registry.
-
-André Hentschel (5):
-      ntdll/tests: Fix some typos.
-      po: Update German translation.
-      winefile: Fix collapsing when there's no parent directory.
-      advapi32/tests: Add a test to cover second RegSetValueW Parameter (gcov).
-      po: Fix German translation.
-
-Aric Stewart (1):
-      gdi32: Rebuild the internal SystemLink every time.
+André Hentschel (1):
+      progman: Remove dead code.
 
 Aurimas Fišeras (1):
       po: Update Lithuanian translation.
 
-Charles Davis (1):
-      ntdll: Zero reserved fields of the request structure in DVD_ReadDescriptor().
-
-Christian Costa (4):
-      d3dxof: Enable dumping of input x files and templates.
-      d3dxof: Enable retrieving a particular member in GetData + tests.
-      d3dxof: Decompress all MSZIP chunks of the compressed file and update file format description.
-      d3dxof: Increase limit of number of children.
-
-Dan Kegel (2):
-      ntdll: Fix endianness of three fields in DVD_LAYER_DESCRIPTOR.
-      gdiplus: Make GdipTranslateLineTransform stub lie and return Ok.
+Christian Costa (5):
+      d3dxof: Add tests for IDirectXFileData_GetName.
+      d3dxof: Fix parsing of empty array + tests.
+      d3dxof: Accept bigger names for objects.
+      d3dxof: Fix leaking of IDirectXFileObject object in tests.
+      d3dxof: Make sure the returned object pointer is null when there is no more object.
 
 Detlef Riekenberg (1):
-      comdlg32: Exclude the driver path from the result.
+      commdlg: Fix GlobalReAlloc16 parameter order.
 
-Eric Pouech (6):
-      dbghelp: Store the 32/64 bitness in the image structure.
-      dbghelp: Correctly initialize module word_size field when only the eh_frame is present (and not compilation unit).
-      dbghelp: In dwarf parser, when looking for FDE/CIE skip first O-length entries.
-      dbghelp: In traces for Dwarf/CFA engine, some offset are signed entities.
-      dbghelp: In i386 stack unwinder, only check for NULL ebp after calling the dwarf/MSVC unwinders as they allow NULL ebp.
-      dbghelp: Fix a couple of traces in dwarf line info parsing.
+Dmitry Timoshkov (2):
+      kernel32: Add a test to show that NtMapViewOfSection should not perform an image relocation.
+      kernel32: Add a test for LoadLibrary called on a not DLL image.
 
-Erich Hoover (1):
-      hhctrl.ocx: Fix parsing of some TOC topics that reference other files.
+Eduardo Garcia (1):
+      po: Spanish translation update.
 
-Francois Gouget (22):
-      po: Remove invalid Close/Next translation suggestions.
-      po: Tweak some Catalan translations.
-      po: Tweak / fix some French translations.
-      po: Update the Hebrew command line 'translations'.
-      po: Fix some typography issues in the Hebrew translation.
-      po: Fix some typography issues in the Danish translation.
-      po: Fix some typography issues in the German translation.
-      po: Fix a formatting directive in the Romanian translation.
-      po: Use '+' when specifying a modifier + accelerator key combination.
-      po: Fix some typography issues in the Romanian translation.
-      po: Remove English strings and invalid translations from the Romanian translation.
-      po: Fix some typography issues in the Esperanto translation.
-      po: Remove English strings from the Esperanto shell folder translations.
-      po: Remove a few English strings from the Hebrew translations.
-      po: Remove English strings from the Italian shell folder translations.
-      po: Fix some typography issues in the Italian translation.
-      po: Fix some typography issues in the Hungarian translation.
-      po: Fix some typography issues in the Spanish translation.
-      po: Add a couple of Finnish translations.
-      po: Fix a typography issue in the Finnish translation.
-      po: Fix some typography issues in the Dutch translation.
-      po: Remove some invalid shell folder path translations from the Dutch translation.
+Eduardo García (1):
+      po: Spanish translation update.
 
-Frédéric Delanoy (4):
-      cmd: Reuse common string constants.
-      cmd: Respect constant wide strings naming convention.
-      setupx.dll16: Simplify some dead code (Coverity).
-      po: Update French translation.
+Eric Pouech (1):
+      kernel32: Enhance bare fd check by checking that the handle is a real console handle.
 
-Gustavo Henrique Milaré (2):
+Francois Gouget (21):
+      comctl32/tests: Make cbt_hook_proc() static.
+      winedbg: The winedbg debug channel is unused in crashdlg.c so remove it.
+      winex11: The x11drv debug channel is unused in pen.c so remove it.
+      shell32: Make extracticon_create() static.
+      msxml3/tests: Make test_XPath() static.
+      po: Use full width full stops in the Chinese (Taiwan) translation.
+      po: Mark a couple of incomplete / invalid Chinese (Taiwan) translations as fuzzy.
+      po: Mark an incomplete Chinese (PRC) translation as fuzzy.
+      po: Use full width full stops in the Chinese (PRC) translation.
+      po: Remove some invalid shell folder path translations from the Chinese (PRC) translation.
+      po: Fix some typography issues in the Chinese (PRC) translation.
+      po: Fix some typography issues in the Chinese (Taiwan) translation.
+      po: The msiexec usage should be translated to Hebrew.
+      po: Don't translate the name or options of command line tools.
+      po: Fix a couple of line wrapping issues in the Lithuanian translation.
+      po: Restore some 'About' Norwegian Bokmål translations or improve the suggestions.
+      po: Restore or add some 'Yes/No' Norwegian Bokmål translations.
+      po: Remove English strings from the Polish shell folder path translations.
+      po: Remove a few spaces before question marks in the Polish translation.
+      po: Remove English strings from the Japanese shell folder path translations.
+      po: Fix some typography issues in the Slovak translation.
+
+Frédéric Delanoy (1):
+      comctl32/tests: Use initialized window handle when rebuilding toolbar (Coverity).
+
+Gaurav Jain (1):
+      wined3d: Recognize Nvidia GeForce 320M, 8600M GT & 9400M.
+
+Gustavo Henrique Milaré (1):
       po: Update Brazilian Portuguese translation.
-      cryptui: Adjust the size of "Add &Purpose..." button.
 
-Henri Verbeet (1):
-      wined3d: Use a format flag instead of a floating point comparison to determine if we need to apply heightscale.
+Henri Verbeet (7):
+      wined3d: Don't take the wined3d mutex during WM_DISPLAYCHANGE either.
+      ddraw: Always pin surfaces.
+      wined3d: Specify the depth range in surface_depth_blt().
+      wined3d: Disable z-clipping for transformed vertices when WINED3D_RS_ZENABLE is disabled.
+      ddraw/tests: Add tests for z-clipping with D3DRENDERSTATE_ZENABLE disabled.
+      d3d8/tests: Add tests for z-clipping with D3DRS_ZENABLE disabled.
+      d3d9/tests: Add tests for z-clipping with D3DRS_ZENABLE disabled.
 
 Huw Davies (1):
-      oleaut32: Zero-init [out] only parameters.
+      ole32: Trace the drop effect in hex.
 
-Hwang YunSong (1):
-      po: Update Korean translation.
+Jaka Kranjc (2):
+      po: Update Slovenian translation.
+      po: Fixed remaining Slovenian true positives in the winepo error report.
 
-Jeremy White (1):
-      oleaut32: When marshalling VT_CARRAY, only marshall by reference for appropriate types.
+Jan-Peter Nilsson (1):
+      winhttp: Set the context on the request handle earlier.
 
-Johan Gill (1):
-      advapi32: CryptCreateHash actually sets ERROR_INVALID_PARAMETER if the CSP handle is 0.
-
-Juan Lang (3):
-      advapi32/tests: Fix a test failure on older NT4.
-      crypt32/tests: Fix test failures on older NT4.
-      cryptnet/tests: Fix test failures on older NT4.
+Juan Lang (1):
+      cryptnet: Don't call HttpEndRequest on a request that was never sent.
 
 Julian Rüger (1):
       po: Update German translation.
 
-Jörg Höhle (4):
-      winmm: Allow new sounds to interrupt previous PlaySound invocations.
-      mciwave: Zero closed resource pointer to prevent reuse.
-      winmm: Avoid using SuspendThread, it can hang Wine.
-      winmm: Make midiStream* messages asynchronous to avoid deadlocks.
+Jörg Höhle (1):
+      mmdevapi/tests: Fix some render test failures.
 
-Kusanagi Kouichi (2):
-      gdi32: Use find_family_from_any_name to find a replacement family.
-      gdi32: Add traces for skipped font replacements.
+Kusanagi Kouichi (1):
+      gdi32: Initialize font signature of "System" font link.
 
-Michael Stefaniuc (3):
-      po: Halve the number of fuzzy entries in the Romanian translation.
-      po: Don't use s and t with cedilla in the Romanian translation.
-      dsound/tests: Fix the capture COM tests for older Win2k versions.
+Lauri Kenttä (2):
+      po: Update Finnish translation.
+      po: Update Finnish translation.
 
-Nikolay Sivov (8):
-      comctl32: Update ticks on TBM_SETRANGEMAX.
-      comctl32: Update ticks on TBM_SETRANGEMIN.
-      comctl32: Update ticks on TBM_SETRANGE.
-      comctl32: Trace Header order array contents.
-      menubuilder: Use va_start/va_end around vsnprintf() on every call.
-      comctl32: Fix TB_SETEXTENDEDSTYLE to use mask passed in wParam.
-      msxml3: Use static buffer when tracing libxml2 error messages.
-      msxml3: Fix structured error callback implementation when no message data available.
+Luca Bennati (2):
+      po: Update Italian translation.
+      po: Update Italian translation.
 
-Vitaliy Margolen (1):
-      server: Add sessions directory and 0 session symlink.
+Maarten Lankhorst (1):
+      mmdevapi: Fix exclusive test.
 
-William Panlener (2):
-      kernel32: Add missing function entry.
-      ntdll: Use success return values for stubs.
+Marcus Meissner (2):
+      user32: Remove duplicated call to GetSystemMenu (Coverity).
+      quartz: Fixed sizeof()s to IsBadReadPtr (Coverity).
 
-Łukasz Wojniłowicz (1):
-      po: Update Polish translation.
+Michael Stefaniuc (1):
+      avicap32: Add "stub" to the FIXME in a no yet implemented function.
+
+Nikolay Sivov (3):
+      wpp: Properly use va_start/va_end around vsnprintf().
+      msxml3/tests: Some tests for IMXAttributes::addAttribute().
+      msxml3/tests: Tests for IMXAttributes::clear().
+
+Piotr Caban (1):
+      urlmon/tests: Fixed protocol tests on IE9.
+
+Ruei-Yuan Lu (2):
+      po: Update Chinese (Taiwan) translation.
+      po: Update Chinese (Taiwan) translation.
+
+Thomas Faber (1):
+      user32/tests: Do not depend on argument evaluation order.
+
+Zoltan Nagy (2):
+      po: Update Hungarian translation.
+      po: Update Hungarian translation.
 
 --
 Alexandre Julliard
diff --git a/VERSION b/VERSION
index bd93354..fdfd351 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-Wine version 1.4-rc4
+Wine version 1.4-rc5
diff --git a/configure b/configure
index 430cd59..94c5873 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for Wine 1.4-rc4.
+# Generated by GNU Autoconf 2.68 for Wine 1.4-rc5.
 #
 # Report bugs to <wine-devel@winehq.org>.
 #
@@ -560,8 +560,8 @@
 # Identity of this package.
 PACKAGE_NAME='Wine'
 PACKAGE_TARNAME='wine'
-PACKAGE_VERSION='1.4-rc4'
-PACKAGE_STRING='Wine 1.4-rc4'
+PACKAGE_VERSION='1.4-rc5'
+PACKAGE_STRING='Wine 1.4-rc5'
 PACKAGE_BUGREPORT='wine-devel@winehq.org'
 PACKAGE_URL='http://www.winehq.org'
 
@@ -1379,7 +1379,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Wine 1.4-rc4 to adapt to many kinds of systems.
+\`configure' configures Wine 1.4-rc5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1448,7 +1448,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Wine 1.4-rc4:";;
+     short | recursive ) echo "Configuration of Wine 1.4-rc5:";;
    esac
   cat <<\_ACEOF
 
@@ -1593,7 +1593,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Wine configure 1.4-rc4
+Wine configure 1.4-rc5
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2111,7 +2111,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Wine $as_me 1.4-rc4, which was
+It was created by Wine $as_me 1.4-rc5, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -16121,7 +16121,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Wine $as_me 1.4-rc4, which was
+This file was extended by Wine $as_me 1.4-rc5, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16192,7 +16192,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Wine config.status 1.4-rc4
+Wine config.status 1.4-rc5
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
