diff --git a/ANNOUNCE b/ANNOUNCE
index f8ed614..ce510f0 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,17 +1,17 @@
-The Wine development release 1.7.13 is now available.
+The Wine development release 1.7.14 is now available.
 
 What's new in this release (see below for details):
   - More Task Scheduler support.
-  - A few more Direct3D 10 interfaces.
-  - More Windows Media Player stubs.
-  - ARM code generation improvements.
-  - Better memory size reporting on Mac OS X.
+  - Improvements for AVI encoding support.
+  - More VisualBasic interfaces in MSXML.
+  - Support for deflate content encoding in Wininet.
+  - Some fixes for monochrome printers.
   - Various bug fixes.
 
 The source is available from the following locations:
 
-  http://prdownloads.sourceforge.net/wine/wine-1.7.13.tar.bz2
-  http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.13.tar.bz2
+  http://prdownloads.sourceforge.net/wine/wine-1.7.14.tar.bz2
+  http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.14.tar.bz2
 
 Binary packages for various distributions will be available from:
 
@@ -27,374 +27,374 @@
 
 ----------------------------------------------------------------
 
-Bugs fixed in 1.7.13 (total 63):
+Bugs fixed in 1.7.14 (total 56):
 
-   6351  Battlefield 2 graphics problems
-   7366  softPROGRESS eISLP fails to display prescription information details
-  10528  mdiviewer unusable
-  12320  [The Master Genealogist (5/6/7) Gold U.S Edition] - Fonts/Text Do not Show in "Details/Children & Siblings" Windows (unless you install vb6run and choose: native_oleaut32 with winetricks )
-  12442  UOAssist: crash after startup attempting to fetch http page in frame
-  12792  Warcraft III videos is not playing
-  17214  Proteus VX fails to install (VT_DISPATCH to VT_xxx conversion: uninitialized VARIANTARG passed to DISPID_VALUE invoke call)
-  19322  Letters missing in tahomabd.ttf
-  19553  VideoReDo Plus crashes when video file is loaded.
-  22433  Starship Tycoon demo crashes on exit
-  24517  Many DirectX10/11 games need dxgi.dll.CreateDXGIFactory1 (Deus Ex: Human Revolution, Alan Wake, AC III, NFS: Most Wanted, Civ V, ...)
-  25481  Desktop launchers generated by Steam use unregistered URL handler
-  25526  Aura crashes
-  25649  Firefox: alt tabbing is sometimes screwy
-  25771  getElementsByName not implemented- causes problems for some applications navigating internet.
-  26001  Champions Online installer crashes on startup
-  26221  Shattered Origins config screen edges are not transparent, but pink
-  26698  Dope Wars 2.2 weapon rack text is not drawn correctly
-  27364  Osu! fails to install (ole32.IIDFromString returns unexpected error code)
-  27417  Assassins Creed media validation fails (SafeDisc 4.85.x)
-  27527  Move of the SendMessage() breaks 3DMark2001se
-  27733  Fishdom 2: some fish render purple
-  27977  freegate fg715x.exe exit silently
-  28460  ieframe/ie test fails if CFLAGS="-fstack-protector-all" is used
-  28463  oleaut32/tmarshal.c test crashes if CFLAGS="-fstack-protector-all" is used
-  28996  rynga aborts on startup due to stubby GdipGetPropertyItemSize
-  29611  FL Studio 10 is invisible without "emulate virtual desktop"
-  29615  Inpage Urdu 2000 crashes on startup
-  29983  AVRstudio 4.14 unable to get list of supported device for AVR simulator
-  30132  FL Studio 10 crashes on start
-  30447  Lexware 2012 product installers show an empty dialog window on startup (urlmon.CreateURLMoniker with base context and non-well formed URI, DOS-style path)
-  31159  League of Legends: store doesn't load with builtin wininet
-  31162  New Ubisoft Game Launcher fails to start games
-  31439  ITKFEGUI.EXE crashes on startup.
-  31505  AVR Studio 4.18 SP2 (build 700) crashes during build of projects
-  33372  winmm:midi fails on systems with no sound card
-  34052  The Witcher: Character models are sometimes invisible
-  34098  Gamefly Client fails to install downloaded game content
-  34304  Louisiana Adventure Demo fails with 'OLE error 80004001' (HTMLStyleSheet_get_href is a stub)
-  34852  Xibo installer 1.4.x complains "Player cannot be installed on systems with Internet Explorer version smaller than 7.0"
-  34892  IE8 crashes in 'purist' mode, needs unimplemented urlmon.dll.108
-  34921  Multiple games and applications need bcrypt.dll.BCryptGenRandom (Need for Speed: The Run, Battlefield 3)
-  35171  Adobe Shockwave Player 12.x installer crashes on startup (URL moniker notify window class not unregistered during unload of urlmon)
-  35256  Skyrim - "Not enough memory to run application" error
-  35362  Aeria Games/Aura Kingdom launcher account signin fails due to IHTMLDocument2.GetActiveElement stub
-  35406  Dawn Of War: Dark Crusade crash
-  35417  all texts looks a bit shifted left
-  35433  Civilization 4 BTS randomly page faults
-  35485  Tab control is keeping pressed with TCM_SETCURSEL wParam:-1
-  35509  ProPresenter 4.x (.NET 3.5 WPF app) installer needs WshShortcut_put_IconLocation
-  35524  Adobe Audition 3.0 crashes on startup (GdipFillRectangles must validate graphics object parameter)
-  35546  Microsoft .NET Framework 3.0 'servicemodelreg.exe' crashes during installation
-  35565  Assassin's Creed 2: 'UbisoftGameLauncher.exe' needs msvcp90.dll.??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z
-  35567  Xibo Player 1.4.x crashes on startup (WMI reports network adapter with IPEnabled=true and MACaddress=NULL)
-  35569  Questrade IQ needs msvcr110.dll._libm_sse2_pow_precise
-  35579  d3d8:visual test_scalar_instructions() fails on Windows
-  35580  d3d8:device test_display_formats() fails on Windows 8
-  35584  wine can no longer execute rm.com (DOS application)
-  35588  Assassins Creed II fails installation fails at the end
-  35601  Mediacoder crashes on start after transcoding audio
-  35609  Menu popup failures in user32:msg on Windows XP
-  35612  jscript:activex fails if the user does not have sufficient privileges
-  35620  WatchGuard System Manager 11.8.1 crashes on unimplemented function wsnmp32.dll.SnmpStartup
+   3901  Rayman 3 Hoodlum Havoc installer can't copy files
+   5552  Need for Speed Porsche 2000 doesn't see DX as installed
+   7602  MPLAB 7.52 starts with errors
+   8391  EDWinXP 1.50 trial version aborts after splash screen (IPicture DISPID_PICT_RENDER support missing)
+   8539  VMXBuider 0.8 (VB6 app) fails to create new VM, reporting "Run-time error '-2147417848 (80010108)': Automation error"
+   9396  Solidworks 2006/2007/2012 fails to save files, reporting 'An unsupported operation was attempted.' (comdlg32 version resource outdated/inconsistent with default WinVer setting)
+  12757  Europa Universalis Rome crashes on startup (D3DXLoadSurfaceFromFileInMemory must not unconditionally call CoUninitialize(), different COM threading model used)
+  15286  Multiple applications need Windows Media Player ActiveX control: CLSID 6bf52a52-394a-11d3-b153-00c04f79faa6 (iMesh 7.x, Amazon mp3 downloader, ...)
+  15480  Saving files in Microsoft Word/Excel 2000-2010 creates useless .lnk files (CSIDL_RECENT folder missing)
+  16360  Help does not work in Office 2000
+  19513  Rise of Legends: CD2 is not recognized (wine eject/umount/remount doesn't work)
+  20209  AverTV installer for AverMedia AverTV Hybrid Volar HX crashes
+  22010  Europa Universalis: For the Glory; crashes on startup
+  22089  Starcraft II license screen - moving the mouse makes installer think you've read entire license
+  22171  BizAgi Process Modeler requires gdiplus.GdipWidenPath() implementation (Mono, MS .NET)
+  22935  Double clicking a word file can't open it (opens fine from Word 2007 opens it)
+  22986  can't read DivX 7.2 licence agreement
+  23577  Kaspersky Internet Security 2010 installation problem: needs Win XP SP 2 (builtin 'fltlib.dll' needs version resource)
+  24419  Nvidia hdr sample crashes without native d3dx9_36
+  25430  Internet Explorer 4 can't load the WineHQ forum without native urlmon
+  25668  DAEMON Tools 3.47 installer crashes on unimplemented function setupapi.dll.SetupDiSetSelectedDevice
+  26461  OmniPage 17 installer fails to complete (hangs, heap corruption)
+  26517  The game Battleground Europe crashes
+  26568  Siemens PLM NX 7.5: License Server installation hangs up on starting services
+  26602  MS Excel 2007: Excel hangs-up after closing solver
+  26654  MS Office 2000 programs crash when resizing windows
+  26927  iTunes 10.2.2 store homepage is black
+  27236  Lego Pirates of the Carribean demo: psychadelic rendering artifacts
+  27504  Freejack downloader crashes before downloading files
+  28067  In Battleground Europe mouse stuck in middle of screen
+  28080  Radeon Bios Editor v1.28 (VB6 app) crashes when saving modified BIOS files
+  28405  AVID/Pinnacle LE 6.10 crashes on unimplemented function setupapi.dll.SetupAddToSourceListA
+  28972  Seagate Crystal Enterprise 8.0 installer fails when starting services
+  29432  Mezzmo DLNA media server 3.4 crashes on startup
+  29447  ZBrush 4R2 not launching
+  29846  HTML-Kit 292 can't show any plugin previews except the default
+  29856  Password Safe 3.26 initial default help page is blank (invalid MSITStore moniker constructed)
+  29954  ERWIN r8.2 cannot install due to missing ERwinIScustomactions.dll
+  29987  BlueKenue 3.x crashes on startup
+  30097  Can't host server on Terraria 1.1
+  30099  Terraexplorer 6.1 not run
+  30324  imgburn 2.5.7.0 crashes on startup
+  30876  Diablo 1 demo crashes
+  31111  wmp9 install fails with builtin pidgen
+  33489  WinRAR 5.0 beta 1 help causes HH crash
+  33947  Battle.net desktop app crashes after 15 seconds
+  35107  Cannot display japanese vertical text correctly.
+  35572  gdi32:font fails on Windows 2000
+  35624  3Dmark 2001 SE: Broken "Fill Rate (Multi-Texturing)" test
+  35629  Zynaps: menu is rendered incorrectly
+  35635  VMXBuider 0.8 (VB6 app) fails to create new VM, reporting "Run-time error '445'" - filesys_get_Drives
+  35636  JobTabs Free Resume Builder 2013 (vb6 app) fails on startup (failure to parse app SxS manifest referencing registry free COM server)
+  35668  HEDZ installer crashes
+  35673  Gallium 0.4 on SVGA3D not recognized (running Call To Power 2 stops)
+  35676  iMesh 7.x crashes on IWMPCore::get_settings method stub
+  35691  IPLA 0.9 installer aborts with 'Windows Media Player version 9 or newer needed' (wmp.dll version resource missing)
 
 ----------------------------------------------------------------
 
-Changes since 1.7.12:
+Changes since 1.7.13:
 
-Akihiro Sagawa (3):
-      gdi32/tests: Mark Win2k result as broken.
-      gdi32/tests: Improve the font search method for test_EnumFontFamiliesEx_default_charset.
-      gdi32/tests: Avoid using GetGlyphIndices directly.
+Alexandre Julliard (3):
+      ntdll: Detect 16-bit modules and resolve imports for them.
+      configure: Avoid printing empty warning lines.
+      kernel32/tests: Add more Unicode digit ranges.
 
-Alexandre Julliard (21):
-      makefiles: Generate the testlist.c files at make depend time.
-      makefiles: Add makefile variables for the winegcc parameters.
-      user32: Use delayed imports to call the imm32 functions.
-      winebuild: Generate position-independent code for ARM.
-      ntdll: Fix printing formats for ARM registers.
-      kernel32: Set correct binary type for COM and PIF files.
-      widl: Ignore unknown -m target options.
-      wrc: Ignore unknown -m target options.
-      winebuild: Add support for -marm and -mthumb target flags.
-      winegcc: Forward -marm and -mthumb options to winebuild.
-      configure: Add the -marm option to the target flags.
-      ntdll: Trace missing exception info on ARM.
-      kernel32/tests: Add some tests for dll import resolution.
-      ntdll: Don't fixup imports when a dll is already loaded.
-      ntdll: Don't fixup imports for executables.
-      ntdll: Move fixup_imports to avoid forward declarations.
-      ntdll: Only allocate TLS data when resolving imports.
-      makedep: Only add global includes to the include paths when generating the makefile.
-      makedep: Look for source files only in the source directory.
-      makedep: Generate .fon rules directly into the output instead of adding generated files.
-      kernel32: Fix build on older Mac OS X.
+Alistair Leslie-Hughes (1):
+      dpnet: Add pointer tests and checks in EnumServiceProvider.
 
-Alistair Leslie-Hughes (4):
-      dpnet/tests: Add DirectPlay8Server tests.
-      dpnet/tests: Add IDirectPlay8Peer_EnumHosts tests.
-      dpnet: Add DirectPlay8 registry keys.
-      dpnsvr.exe: New stub program.
+André Hentschel (3):
+      kernel32/tests: Remove unused assertion header.
+      ws2_32/tests: Test OOB data more sequential by sending bidirectional.
+      ws2_32/tests: Get rid of the do_oob_send helper function.
 
-Andrey Gusev (3):
-      Assorted typos fixes.
-      odbccu32: Correct filename string.
-      xinput1_4: Add version.rc file.
+Aric Stewart (4):
+      secur32: Return success on graceful close of SSL connection.
+      dmime: Do not try to query a NULL direct sound buffer.
+      shell32: Improve the FO_MOVE operation.
+      user32: Correct buffer calculation for GetMenuStringA.
 
-André Hentschel (1):
-      gdiplus/tests: Remove assertions in graphics tests.
+Bruno Jesus (3):
+      ws2_32/tests: Add W2K error values as valid.
+      po: Update Brazilian Portuguese translation.
+      po: Update Portuguese translation.
 
-Aric Stewart (1):
-      winemac.drv: Improve positioning of IME client window based on caret.
+Christoph von Wittich (2):
+      comctl32: Rename TBSTYLE_EX_UNDOC1 to TBSTYLE_EX_VERTICAL.
+      comctl32/tests: CCS_VERT should be set when TBSTYLE_EX_VERTICAL is set.
 
-Aurimas Fišeras (1):
-      po: Update Lithuanian translation.
+Daniel Lehman (1):
+      ole32: Make some COM functions hot-patchable.
 
-Austin English (3):
-      wbemprox: Add a missing break (Coverity).
-      riched20: Remove duplicate declaration.
-      configure: Give a warning for missing gnutls.
+Dmitry Timoshkov (18):
+      xmllite: Also clear the attr pointer in reader_clear_attrs.
+      include: Fix typedef for TASK_RUNLEVEL_TYPE.
+      taskschd: Add support for reading more TaskSettings fields to XML parser.
+      taskschd: Add support for reading RegistrationInfo to XML parser.
+      taskschd: Add support for reading Principals to XML parser.
+      taskschd: Add initial version of the task definition XML writer.
+      taskschd: Add support for RegistrationInfo to task definition XML writer.
+      taskschd: Add support for Principals to task definition XML writer.
+      taskschd: ITaskService::NewTask doesn't need a server connection.
+      taskschd/tests: Add more various tests.
+      taskschd: Add a check for the task namespace.
+      taskschd: Don't accept task XML with an invalid boolean value.
+      taskschd: Return appropriate error code for a malformed XML.
+      taskschd: Add more tests for RegisterTask, GetTask and DeleteTask.
+      taskschd/tests: Add more ITaskFolder::RegisterTask tests.
+      gdiplus/tests: Mark some GdipGetPropertyItem test results as broken under XP.
+      kernel32/tests: Add some tests for CreateFile called on a directory instead of a file.
+      kernel32/tests: Add a test for CreateFile called with TRUNCATE_EXISTING/FILE_WRITE_DATA parameters.
 
-Bruno Jesus (4):
-      bcrypt: Add semi-stub implementation of BCryptGenRandom.
-      ws2_32: Add AI_NUMERICSERV support.
-      ws2_32: Fix edge case for getaddrinfo in BSD and OSX.
-      ws2_32: Fix conversion of address in GetAddrInfoW.
+Erich Hoover (2):
+      hhctrl.ocx: Support delimited filenames for HH_DISPLAY_TOPIC data.
+      hhctrl.ocx: Permit HTML start/end tags within quoted attributes.
 
-Dmitry Timoshkov (36):
-      xmllite/tests: Fix stack corruption in 64-bit builds.
-      xmllite/tests: There is no need to initialize OLE.
-      xmllite/tests: Add a test for short variant of xml declaration.
-      cabinet/tests: Advance buffer by actually read bytes count.
-      advapi32/tests: Add a test for page to access mapping performed by CreateFileMapping.
-      kernel32: Fix page protection to access mapping performed by CreateFileMapping.
-      advapi32/tests: Correct the test failure message.
-      scrrun: Move the counter check into the code block where counter is actually incremented.
-      scrrun: Fix a file enumeration handle leak.
-      taskschd: Forward ITaskFolder::RegisterTask to IRegisterTask constructor.
-      taskschd/tests: Add some ITaskDefinition tests.
-      taskschd: Add ITaskSettings stub implementation.
-      taskschd: Implement most of ITaskSettings get methods.
-      advapi32/tests: Fix test failures under Windows 2000 and some XP versions.
-      xmllite: Don't fail if encoding declaration is missing.
-      xmllite: Don't fail if standalone declaration is missing.
-      xmllite/tests: Add a test for names and values parsed from an XML declaration.
-      xmllite: Reader should set starting string offsets when encoding is being parsed.
-      xmllite: Don't fail the whole parsing process because of unsupported 'xmlns' attribute.
-      xmllite: Add an import library.
-      taskschd: Implement ITaskFolder::RegisterTask as a wrapper around ITaskFolder::RegisterTaskDefinition.
-      taskschd: Add initial implementation of ITaskDefinition::put_XmlText.
-      taskschd: Make ITaskSettings a part of ITaskDefinition implementation.
-      taskschd: Implement ITaskDefinition::put_Settings.
-      taskschd: Implement reading Settings of the task definition XML chunk.
-      user32/tests: Flush pending events before testing menu messages.
-      shlwapi: Return interface instead of implementation pointer.
-      shlwapi: Avoid potential NULL pointer access if HeapAlloc fails.
-      shlwapi: Avoid a not necessary intermediate variable.
-      taskschd: Add IRegistrationInfo stub implementation.
-      taskschd: Make IRegistrationInfo a part of ITaskDefinition implementation.
-      taskschd: Delay creation of ITaskSettings until it's required.
-      taskschd: Make ITaskDefinition a part of IRegisteredTask implementation.
-      taskschd: Implement IRegisteredTask::get_Definition.
-      taskschd: Implement IRegisteredTask::get_Xml.
-      xmllite/tests: Add a test for parsing an empty element after XML declaration.
+François Gouget (16):
+      d3d9/tests: Fix some test failures on Windows 2000.
+      oleaut32/tests: Skip the test_stub() tests if we have insufficient privileges.
+      winmm/tests: Change the current directory to a place that will be writable.
+      d3d10_1: Make debug_d3d10_{driver_type,feature_level}() static.
+      ddraw/tests: Fix some comma versus semi-colon mixups.
+      ddraw/tests: Simplify the 'NT4 testbot' special case a bit.
+      xcopy/tests: Fix the test in case stdin has been redirected.
+      oleaut32/tests: Fix compilation on systems that don't support nameless structs.
+      advapi32/tests: Fix the backup tests when run in a non-administrator pre-Vista account.
+      kernel32/tests: Skip some profile tests if not allowed to create files in the Windows directory.
+      msi/tests: Check that we have enough privileges to run the automation tests.
+      msi/tests: Avoid source test failures when running in an account with insufficient privileges.
+      msi/tests: Avoid msi test failures when running in an account with insufficient privileges.
+      msi/tests: Skip some package tests if in a non-administrator, non-power user account.
+      msi/tests: Update is_process_limited() to deal with non-administrator accounts.
+      faultrep/tests: Update is_process_limited() to deal with non-administrator, non-power user accounts.
 
-Erich Hoover (3):
-      kernel32: Add support for security access parameters for named pipes.
-      ddraw: Return a DLL in szDriver for GetDeviceIdentifier.
-      ddraw: Return the D3D identifier when GetDeviceIdentifier is called with no flags.
+Frédéric Delanoy (12):
+      msvidc32: Use BOOL type where appropriate.
+      taskkill: Use BOOL type where appropriate.
+      atl/tests: Use BOOL type where appropriate.
+      d3dcompiler_43/tests: Use BOOL type where appropriate.
+      setupx.dll16: Use BOOL type where appropriate.
+      avifil32: Use BOOL type where appropriate.
+      comdlg32/tests: Use BOOL type where appropriate.
+      dplayx: Use BOOL type where appropriate.
+      shlwapi/tests: Use BOOL type where appropriate.
+      notepad: Use BOOL type where appropriate.
+      start: Use BOOL type where appropriate.
+      winemenubuilder: Use BOOL type where appropriate.
 
-François Gouget (8):
-      inetmib1/tests: Add a trailing '\n' to an ok() call.
-      dpnet/tests: Add a trailing '\n' to an ok() call.
-      shell32/tests: Skip any test that needs the .shlexec association if we could not create it.
-      ddraw/tests: Skip the primary palette tests if the 640x480x8 mode is not supported.
-      atl/registrar: Skip the test_registrar() tests if we don't have elevated privileges.
-      atl100/tests: Skip the test_regcat() tests if we don't have elevated privileges.
-      ddraw/tests: Better clean up when skipping the primary palette tests.
-      faultrep/tests: AddERExcludedApplication() fails if we have insufficient privileges.
+Gediminas Jakutis (2):
+      d3dx9: Implement D3DXCreateBox().
+      d3dx9/tests: Add a mesh test for D3DXCreateBox().
 
-Frédéric Delanoy (14):
-      Assorted spelling fixes.
-      propsys: Use BOOL type where appropriate.
-      msvcrtd: Use BOOL type where appropriate.
-      crypt32/tests: Use common wine_dbgstr_guid implementation from test.h.
-      propsys/tests: Use common wine_dbgstr_guid implementation from test.h.
-      dsound/tests: Use wine_dbgstr_guid for printing GUIDs.
-      ole32/tests: Use wine_dbgstr_guid for printing GUIDs.
-      setupapi: Use BOOL type where appropriate.
-      msi: Fix typo in a field name.
-      winhlp32: Use BOOL type where appropriate.
-      mscoree: Use BOOL type where appropriate.
-      mscoree/tests: Use BOOL type where appropriate.
-      user32: Use BOOL type where appropriate.
-      cabarc: Use BOOL type where appropriate.
+Grazvydas Ignotas (2):
+      include: Remove unneeded semicolons and fix a typo.
+      winegcc: Define __stdcall and similar attributes to nothing on ARM.
 
-Hans Leidekker (3):
-      winhttp/tests: Fix a couple of test failures.
-      winhttp/tests: Improve tracing.
-      wbemprox: Don't list loopback network adapters.
+Hans Leidekker (11):
+      msi: Don't install services without an image path.
+      msi: Use an INSTALLSTATE variable to track install state of classes and extensions.
+      msi: Get rid of the InstallMe field in MSIMIME.
+      msi: Correctly [un]register progids when associated class and extensions change state.
+      winspool: Add stub implementations of UploadPrinterDriverPackageA/W.
+      wbemprox: Implement Win32_DiskDrive.MediaType.
+      wbemprox: Implement Win32_PhysicalMedia.Tag.
+      wbemprox: Add support for negated expressions in WHERE clauses.
+      msi: Remove the product reference when a shared component is unregistered.
+      ws2_32/tests: Mark some test results on Windows 8 as broken.
+      advapi32/test: Fix test failures on filesystems where compression is enabled.
 
-Henri Verbeet (31):
-      dxgi/tests: Cleanup test_output().
-      dxgi/tests: Use D3D10CreateDevice() to create a device.
-      dxgi/tests: Don't reuse the device.
-      dxgi: Return DXGI_ERROR_INVALID_CALL when given a NULL mode_count in dxgi_output_GetDisplayModeList().
-      dxgi: Properly check if the output array is large enough in dxgi_output_GetDisplayModeList().
-      dxgi: Implement CreateDXGIFactory1().
-      dxgi/tests: Add tests for CreateDXGIFactory().
-      dxgi/tests: Also test for ID3D10Device1 and ID3D11Device in test_device_interfaces().
-      d3d10core: Implement ID3D10Device1.
-      d3d10_1: Implement D3D10CreateDevice1().
-      d3d10core: Implement ID3D10Multithread.
-      d3d8/tests: Accept some broken results in test_scalar_instructions().
-      d3d10core: Implement d3d10_texture2d_GetDevice().
-      d3d10core: Implement d3d10_texture3d_GetDevice().
-      d3d10core: Implement d3d10_buffer_GetDevice().
-      d3d10core: Implement d3d10_depthstencil_view_GetDevice().
-      d3d10core: Implement d3d10_rendertarget_view_GetDevice().
-      d3d10core: Implement d3d10_shader_resource_view_GetDevice().
-      d3d10core: Implement d3d10_vertex_shader_GetDevice().
-      d3d10core: Implement d3d10_pixel_shader_GetDevice().
-      d3d10: Release depth stencil state references in d3d10_effect_variable_destroy().
-      d3d10: Release blend state references in d3d10_effect_variable_destroy().
-      d3d10: Release rasterizer state references in d3d10_effect_variable_destroy().
-      d3d10: Release sampler state references in d3d10_effect_variable_destroy().
-      d3d10core: Implement d3d10_sampler_state_GetDevice().
-      d3d10core: Implement d3d10_blend_state_GetDevice().
-      d3d10core: Implement d3d10_depthstencil_state_GetDevice().
-      d3d10core: Implement d3d10_rasterizer_state_GetDevice().
-      d3d10core: Implement d3d10_query_GetDevice().
-      advapi32: Add a stub for EventProviderEnabled.
-      d2d1: Add a stub D2D1CreateFactory() implementation.
+Henri Verbeet (24):
+      d3d9/tests: Get rid of "skip_once" in yuv_layout_test().
+      ddraw/tests: Try 24 bpp display modes if 32 bpp modes are unavailable.
+      ddraw/tests: Properly create offscreen plain surfaces.
+      ddraw/tests: Don't trust what EnumDevices() tells us about the supported Z buffer formats.
+      wined3d: Also trace "mem" and "pitch" in wined3d_surface_update_desc().
+      wined3d: Filter redundant WINED3D_MAP_DISCARD buffer maps.
+      ddraw: User memory surfaces should be in the system memory pool.
+      ddraw: User memory surfaces should be created with an explicit pitch.
+      ddraw: Don't overwrite the caller specified pitch in ddraw_surface_init().
+      ddraw: Validate the surface pitch for user memory surfaces in ddraw_surface_init().
+      ddraw: Clear DDSD_LPSURFACE after surface creation.
+      ddraw: Disallow user memory surfaces before version 4.
+      ddraw/tests: Add a test for creating surfaces with an explicit pitch.
+      ddraw/tests: Avoid using EnumDevices() to get a supported Z buffer format.
+      wined3d: Recognize VMware SVGA3D.
+      wined3d: Get rid of GL_VENDOR_INTEL.
+      ddraw/tests: Verify that creating a ddraw object works before running any real tests.
+      d3d8/tests: Don't bother handling Direct3DCreate8() failures, we verified it works earlier.
+      d3d9/tests: Don't bother handling Direct3DCreate9() failures, we verified it works earlier.
+      d3d9/tests: Use create_device() in more tests.
+      d3d8/tests: Use create_device() in more tests.
+      d3d9/tests: Handle failure to create a device in the stateblock tests with skip().
+      d3d8/tests: Handle failure to create a device in the stateblock tests with skip().
+      d3dx9: Use a 1x1x1 unit box in D3DXCreateBox().
 
-Huw D. M. Davies (1):
-      user32: If the listbox loses focus while holding capture, release it by essentially simulating a button up event.
+Huw D. M. Davies (2):
+      wineps: Use the correct colours when a monochrome bitmap without a colour table is the source.
+      wineps: Return 32 even for monochrome printers.
 
-Jacek Caban (35):
-      wmp: Added SetClientSite implementation.
-      wmp: Added SetClientSite tests.
-      wmp: Added GetClientSite implementation.
-      wmp.idl: Added proper version independent ProgID.
-      wmp: Added missing registry entries for WindowsMediaPlayer coclass registration.
-      wmp: Added GetMiscStatus implementation.
-      wmp: Added IOleInPlaceObjectWindowless stub implementation.
-      msxml3: Fixed qname leak.
-      wmp: Added IConnectionPointContainer stub implementation.
-      msxml3: Read stream data until Read fails or returns 0 bytes.
-      urlmon: Added IsInternetESCEnabledLocal implementation.
-      atl: Share atl_ax.c with atl100.
-      atl: Share sources with atl100 instead of forwarding calls.
-      atl: Moved AtlRegisterTypeLib to atl.c to avoid importing atl80.dll in atl.dll.
-      urlmon: Unregister window class on DLL unload.
-      atl: Renamed atl_main.c to atl30.c.
-      atl: Moved source files from atl100 to atl directory.
-      mshtml: Added IHTMLDocument2::get_activeElement implementation.
-      mshtml.idl: Added IHTMLDocument7 and related interfaces declarations.
-      mshtml: Use IWebBrowserPriv2IE9 instead of IWebBrowserPriv2IE8 in tests on IE9+.
-      wmp.idl: Added some missing interfaces.
-      jscript: Skip tests if we can't register ActiveX object.
-      vbscript: Skip tests if we can't register ActiveX object.
-      wscript: Skip tests if we can't register ActiveX object.
-      d3d10_1.idl: Added D3D10CreateDevice1 declaration.
-      d3d9.h: Added Direct3DCreate9Ex declaration.
-      dxgi.idl: Added CreateDXGIFactory1 declaration.
-      shell32/tests: Ensure that tmpdir contains long path name.
-      mshtml: Added support for ZoomFactor registry value.
-      wmp: Added IWMPPlayer4 stub implementation.
-      wmp/tests: Fixed tests on old WMP versions.
-      wmp: Added DoVerb(OLEIVERB_INPLACEACTIVATE) implementation.
-      wmp: Added IOleObject::Close implementation.
-      wmp: Added IOleInPlaceObject::GetWindow implementaiton.
-      wmp: Added more tests.
+Jacek Caban (29):
+      urlmon: Fixed some tests on IE11.
+      wmp: Return success in IPersistStreamInit::InitNew.
+      wmp: Added DoVerb(OLEIVERB_HIDE) implementation.
+      wmp: Added SetObjectRects implementation.
+      wmp: Added IOleControl stub implementation.
+      urlmon: Fixed protocol tests on IE11.
+      urlmon: Query bind info object for BINDSTRING_ROOTDOC_URL.
+      wmp: Added IWMPPlayer4::get_settings implementation.
+      urlmon: Fixed url.c tests on IE11.
+      wmp: Added version info resources.
+      secur32/tests: Fixed tests with new winehq.org setup.
+      wininet/tests: Fixed tests for the new winehq.org cert.
+      qcap: Added AVICompressorIn_Disconnect implementation.
+      crypt32: Moved chain engine handle handling to separated function and improved error handling.
+      crypt32: Added support for HCCE_LOCAL_MACHINE.
+      mshtml: Don't use fragment navigation for SuperNavigate calls.
+      wininet: Renamed read_mode_t to blocking_mode_t.
+      wininet: Use blocking_mode_t instead of flags in NETCON_recv.
+      wininet: Improved non-blocking mode in secure NETCON_recv.
+      wininet: Get rid of no longer needed size calculation in netconn_read.
+      wininet: Use non-blocking reads in netconn_drain_content.
+      wininet: Get rid of no longer needed hack in gzip_read that prevents consuming the whole input buffer until we're at the end of stream.
+      wininet: Added support for raw deflate content encoding.
+      atl/tests: Use HKCU instead of HKCR for registrar tests.
+      ws2_32: Improved WSAIoctl debug messages.
+      vbscipt: Added beginning support for arrays as class members.
+      vbscript: Directly access 'this' object properties in interpreter.
+      crypt32: Simplified getting context expiration.
+      urlmon/tests: Use asynchronous binding for invalid cert tests.
 
-Jactry Zeng (1):
-      riched20/tests: Add tests to check the content open by ITextDocument_fnOpen.
+Kai Tietz (2):
+      d3dx9core.h: Allow overriding D3DX_SDK_VERSION.
+      d3dx9shader.h: Added some missing declarations.
 
-Ken Thomases (10):
-      d3d8/tests: Ignore broken CheckDeviceType() behavior on 64-bit Windows 8.
-      d3d9/tests: Ignore broken CheckDeviceType() behavior on 64-bit Windows 8.
-      kernel32: Check that sysctl() call succeeded before using its output.
-      kernel32: Avoid truncating 64-bit ullTotalPhys value to 32 bits when copying to ullAvailPhys, ullTotalPageFile, and ullAvailPageFile.
-      kernel32: Consolidate some duplicate variable declarations.
-      kernel32: Prefer HW_MEMSIZE sysctl variable over HW_PHYSMEM, if available, since it's 64 bits.
-      kernel32: Use sysctl(VM_SWAPUSAGE) to get swap sizes on BSDs, if available.
-      kernel32: Use the Mach host_info(HOST_BASIC_INFO) API to obtain total RAM after trying sysctl(HW_MEMSIZE) and before HW_PHYSMEM.
-      kernel32: Prefer the Mach host_statistics64(HOST_VM_INFO64) API over sysctl(HW_USERMEM) to obtain free memory.
-      kernel32: Fix build on newer Mac OS X.
+Ken Thomases (8):
+      wined3d: Call context_enter() before context_update_window() so it records the proper restore state.
+      wined3d: Remove redundant call to context_set_pixel_format() from context_update_window().
+      wined3d: Use a separate flag to track if the GL context needs to be made current.
+      wined3d: Make context_update_window() just mark the GL context as needing to be set rather than setting it.
+      wined3d: Restore the pixel format of the window whose pixel format was actually changed.
+      d3d9/tests: Test that Direct3D9 doesn't modify the pixel format of the window it targets. (try 4, resend).
+      d3d8/tests: Test that Direct3D8 doesn't modify the pixel format of the window it targets.
+      ddraw/tests: Test that DirectDraw doesn't modify the pixel format of the window it targets.
 
-Lauri Kenttä (1):
-      po: Update Finnish translation.
+Lauri Kenttä (2):
+      readme: Update Norwegian Bokmål translation.
+      readme: Update Swedish translation.
 
 Marcus Meissner (1):
-      oleaut32: Incorrect sizeof() to MultiByteToWideChar (Coverity).
+      include: Added missing FindExInfoBasic enum.
 
-Martin Storsjo (5):
-      wined3d: Fix clamping in reading rectangular YV12 textures.
-      wined3d: Fix the YV12 illustration.
-      wined3d: Add support for NV12 textures.
-      wined3d: Use an rbtree for storing shaders for texture format conversion/blitting.
-      d3d9/tests: Add tests for different YUV texture layouts.
+Matteo Bruni (15):
+      d3dx9: Calling CommitChanges with no active pass silently returns.
+      d3dx9: Call D3DCompile() for ASCII effects.
+      d3dx9: Kill a noisy TRACE.
+      d3dx9: Remove Begin/End stub fixmes.
+      d3dx9: Don't call CoUninitialize if CoInitializeEx failed.
+      d3dx9: Turn D3DXCreateEffectEx FIXME into a TRACE, improve it a bit.
+      d3dx9: Always use type->Rows as D3DXPC_MATRIX_ROWS parameters size.
+      d3dx9: Improve a number of WARN messages.
+      d3dx9: Allow loading DDS volume textures into 2D textures.
+      d3dx9/tests: Replace a test giving inconsistent results on Windows.
+      d3dx9: Fix an error trace.
+      d3dx9: Introduce a handle table for parameters to make lookup faster.
+      d3dx9: Support skipping mip levels in D3DXCreateTextureFromFileInMemoryEx.
+      d3dx9: Free string data.
+      wined3d: Free CS data on CS destruction.
 
-Matteo Bruni (10):
-      d3dx9: Add some TRACEs and FIXMEs to D3DXCreateTextureFromFileInMemoryEx.
-      d3dx9: Enforce minimum texture dimensions for block-based pixel formats.
-      d3dx9: Trace DDS pixel format.
-      d3dx9: Add missing trace to D3DXLoadVolumeFromFileInMemory.
-      d3dx9: Handle pixel formats larger than 32 bits in surface loading / filtering functions.
-      d3dx9/tests: Create A8L8 and DXTn textures instead of plain surfaces.
-      d3dx9: Add some more float pixel formats.
-      d3dx9: Allow loading float "FOURCC" DDS files.
-      d3dx9/tests: Add a test for constant tables in FX20 shaders.
-      d3dx9/tests: Use a valid version tag for the "empty" shader.
+Michael Stefaniuc (8):
+      qedit: Use the generic IEnumPin implementation for SampleGrabber.
+      avifil32: Basic COM cleanup for IAVIFile from WAVFile.
+      avifil32: Unconditionally support IAVIStream in WAVFile.
+      avifil32: Support COM aggregation in WAVFile.
+      avifil32/tests: Add WAVFile COM tests.
+      avifil32: Merge IPersistFile into the WAVFile object.
+      avifil32: Merge IAVIStream into the WAVFile object.
+      avifil32: Avoid forward declarations of COM methods.
 
-Michael Stefaniuc (6):
-      qedit: IMemInputPin / IQualityControl are IPin stuff.
-      qedit/tests: Expand the SampleGrabber COM tests.
-      qedit: Return the correct iface in IEnumPins_QueryInterface().
-      qedit/tests: COM tests for IEnumPins from SampleGrabber.
-      strmbase: Return the iface instead of the object pointer.
-      qedit: Use the generic BaseFilter implementation in SampleGrabber.
+Nikolay Sivov (42):
+      oleaut32/tests: Test for VariantClear() on VT_RECORD variant.
+      oleaut32: Fix VariantCopy() for VT_RECORD variants.
+      oleaut32: Fix SafeArrayPutElement() for FADF_RECORD arrays.
+      oleaut32/tests: Test for internal safearray data layout.
+      oleaut32: Fix buffer increment step for VT_RECORD case doing SafeArrayCopyData().
+      scrrun: Added a IDriveCollection stub.
+      scrrun: Added a IEnumVARIANT stub for IDriveCollection.
+      include: Use existing DISPID values instead of magic numbers.
+      oleaut32: Some tests for IFontEventsDisp change event.
+      ntdll: Use case-insensitive matching for typelib flags.
+      shell32/tests: Fix some test failures on Win8.
+      oleaut32: Propagate return codes properly.
+      oleaut32: Fix SafeArrayGetElement() for FADF_RECORD arrays.
+      oleaut32: Use better naming to clarify copy direction.
+      scrrun: Added IDrive stub and Next() for drive collection.
+      scrrun: Implement DriveType property of IDrive.
+      fntcache: Added stub Font Cache service.
+      programs: Added stub wevtutil tool.
+      dmime: COM cleanup of IDirectMusicSegmentState8 interface.
+      dmime: COM cleanup of IDirectMusicGraph interface.
+      kernel32: Partial implementation for GetCalendarInfoEx().
+      oleaut32: Implement DISPID_PICT_RENDER dispid.
+      fontsub: Added dll stub.
+      msxml3: Unify Invoke()/InvokeEx() tracing format.
+      msxml3: Support VT_BSTR|VT_BYREF as reader input.
+      msxml3: Fix IVBSAXXMLReader interface definition.
+      msxml3: Support more variant types in putProperty().
+      msxml3: Added IVBSAXDeclHandler interface for MXWriter.
+      msxml3: Added IVBSAXLexicalHandler interface for MXWriter.
+      msxml3: Added partial implementation of IVBSAXContentHandler for MXWriter.
+      msxml3: Added stub support for ISAXDTDHandler/IVBSAXDTDHandler for MXWriter.
+      msxml3: Added stubs for ISAXErrorHandler/IVBSAXErrorHandler for MXWriter.
+      msxml3: Fix return values for some methods needed by SAX reader.
+      msxml3: Fix IVBSAXAttributes handling of retval BSTRs.
+      msxml3: Fix retval BSTR handling for IVBSAXXMLReader.
+      msxml3: Fix BSTR retval handling for IVBSAXLocator.
+      msxml3: Implement startElement() for writer's IVBSAXContentHandler.
+      msxml3: Implement endElement() for writer's IVBSAXContentHandler.
+      oleaut32/tests: Some tests for propputref invocation.
+      msxml3: Make propputref methods invocable with DISPATCH_PROPERTYPUT.
+      po: Update Russian translation.
+      user32/tests: Properly maintain clipboard viewers chain.
 
-Nikolay Sivov (23):
-      oleaut32: Add more tracing, hide initialization details by calling a method.
-      oleaut32: Initialize result VARIANT in *FromDisp().
-      comctl32/tab: Fix TCM_SETCURSEL on negative indices.
-      wshom: Implement LocationPath property for shortcut.
-      wininet: Update module version.
-      mshtml: Implement HTMLStyleSheet_get_href().
-      ole32: Use CoTaskMemAlloc() instead of IMalloc directly.
-      ole32: Separate IIDFromString() for CLSIDFromString(), fix corner cases and return values.
-      ole32: Use precomposed table for GUID from string conversion.
-      ole32: Remove ERR() output that's not really helpful.
-      kernel32/tests: Don't test last error when there's no failure.
-      kernel32/tests: Fix some test failures in older XP/Win2k3 versions.
-      msxml3: Implement addParameter() for XSLProcessor.
-      include: Added ITransferSource/ITransferDestination interfaces.
-      shell32/tests: Fix a test failure on Win8.
-      comctl32/tests: Don't assert() on test failures.
-      advapi32/tests: Accept another error code returned on some WinXP systems.
-      msxml3: Pass XSL processor parameters to libxml2.
-      oleaut32/tests: Some tests for record-based safearray copy.
-      comctl32/tests: Some tests for Button control.
-      oleaut32: Fix destination data release when copying FADF_RECORD arrays.
-      oleaut32: No need to VariantClear() before VariantCopy().
-      ole32/tests: Handle context generation failure better.
+Piotr Caban (26):
+      qcap: Add Avi Mux input pin IMemInputPin::GetAllocatorRequirements implementation.
+      qcap: Don't define IMemInputPin_iface in AviMuxIn structure.
+      qcap: Add Avi Mux input pin IMemInputPin::GetAllocator.
+      qcap: Add Avi Mux input pin IMemInputPin::NotifyAllocator.
+      qcap: Add Avi Mux IConfigInterleaving::put_Mode implementation.
+      qcap: Add Avi Mux input pin IMemInputPin::ReceiveCanBlock implementation.
+      qcap: Fix Avi Mux IConfigInterleaving::put_Mode implementation.
+      qcap: Add Avi Mux IConfigInterleaving::put_Interleaving implementation.
+      qcap: Add support for FORMAT_VideoInfo pins in AviMuxIn::ReceiveConnection.
+      qcap: Add partial Avi Mux IBaseFilter::Run implementation.
+      qcap: Add Avi Mux Receive helper implementation.
+      qcap: Add Avi Mux IMemInputPin::Receive implementation.
+      qcap: Add Avi Mux IBaseFilter::Stop implementation.
+      qcap: Fix strf chunk size in AviMuxIn_ReceiveConnection.
+      qcap: Fix some memory leaks in Avi Mux.
+      qcap: Fix uninitialized variable access in Avi Mux.
+      qcap/tests: Add more Avi Mux tests.
+      qcap/tests: Add option to save generated avi file.
+      user32: Check WS_CHILD style in IsChild function.
+      ole32: Change DoDragDrop return value on IDropTarget::Drop call.
+      ole32: Merge OLEDD_TrackMouseMove and OLEDD_TrackStateChange functions.
+      ole32: Fix DROPEFFECT value in OLEDD_TrackStateChange.
+      ole32: Add more DoDragDrop tests.
+      ole32/tests: Fix DoDragDrop tests.
+      hlink: Improve file protocol handling in HlinkParseDisplayName.
+      dinput8: Create a window that will receive events generated by input tests.
 
-Piotr Caban (2):
-      msvcrt/tests: Don't pass path containing spaces to _spawnvp.
-      msvcrt: Return error on invalid handle in _open_osfhandle.
+Stefan Dösinger (5):
+      wined3d: surface_load_ds_location can handle WINED3D_LOCATION_DISCARDED.
+      ole32: Make CoCreateInstance hookable for Steam.
+      user32: Make SetWindowTextA/W hookable.
+      d3d9: Make ResetEx and PresentEx hookable.
+      winmm: Make some joystick functions hookable.
 
-Stefan Dösinger (7):
-      wined3d: Don't use NP2 repacking for RECT textures.
-      wined3d: Reject height scaled repacked np2 textures.
-      d3d9/tests: Clean up yuv_color_test.
-      d3d9/tests: Skip YUV tests if the formats cannot be converted.
-      d3d9/tests: Add a test for sub resource private data.
-      d3d8/tests: Add a test for sub resource private data.
-      ddraw/tests: Port test_private_data to ddraw4.
+Stefan Leichter (3):
+      wtsapi32/tests: Add some tests for WTSEnumerateProcessesW.
+      fltlib: Add a version resource.
+      comdlg32: Update version resource to values reported from XP.
 
-Vincent Povirk (1):
-      gdiplus: Improve GdipFillRectangles parameter validation.
-
-Ștefan Fulea (2):
-      fonts: Add the missing Romanian diacritical letters to Tahoma Bold.
-      fonts: Correct the bitmap parts of Romanian diacritical letters in Tahoma Bold.
+Vincent Povirk (3):
+      msi/tests: Add tests for [un]registering progids.
+      ole32: Use pstgPriority if specified in StgOpenStorage.
+      kernel32: Cache locale info from the registry.
 
 --
 Alexandre Julliard
diff --git a/VERSION b/VERSION
index f5dcde3..95b7595 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-Wine version 1.7.13
+Wine version 1.7.14
diff --git a/configure b/configure
index 56ddd71..b82130e 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.69 for Wine 1.7.13.
+# Generated by GNU Autoconf 2.69 for Wine 1.7.14.
 #
 # Report bugs to <wine-devel@winehq.org>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='Wine'
 PACKAGE_TARNAME='wine'
-PACKAGE_VERSION='1.7.13'
-PACKAGE_STRING='Wine 1.7.13'
+PACKAGE_VERSION='1.7.14'
+PACKAGE_STRING='Wine 1.7.14'
 PACKAGE_BUGREPORT='wine-devel@winehq.org'
 PACKAGE_URL='http://www.winehq.org'
 
@@ -1969,7 +1969,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.7.13 to adapt to many kinds of systems.
+\`configure' configures Wine 1.7.14 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2038,7 +2038,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Wine 1.7.13:";;
+     short | recursive ) echo "Configuration of Wine 1.7.14:";;
    esac
   cat <<\_ACEOF
 
@@ -2233,7 +2233,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Wine configure 1.7.13
+Wine configure 1.7.14
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2751,7 +2751,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.7.13, which was
+It was created by Wine $as_me 1.7.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -18042,7 +18042,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.7.13, which was
+This file was extended by Wine $as_me 1.7.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18113,7 +18113,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.7.13
+Wine config.status 1.7.14
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
