diff --git a/ANNOUNCE b/ANNOUNCE
index 1827d7b..56eb393 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,17 +1,15 @@
-The Wine development release 1.7.34 is now available.
+The Wine development release 1.7.35 is now available.
 
 What's new in this release (see below for details):
-  - Support for surround sound in DirectSound.
-  - Better text run support in DirectWrite.
-  - Many HTML engine fixes.
-  - More support for WBEM objects.
-  - A few more C/C++ runtime functions.
+  - Beginnings of support for OpenGL core contexts.
+  - Initial support for glyph placement in DirectWrite.
+  - Some more WBEM objects.
   - Various bug fixes.
 
 The source is available from the following locations:
 
-  http://prdownloads.sourceforge.net/wine/wine-1.7.34.tar.bz2
-  http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.34.tar.bz2
+  http://prdownloads.sourceforge.net/wine/wine-1.7.35.tar.bz2
+  http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.35.tar.bz2
 
 Binary packages for various distributions will be available from:
 
@@ -27,351 +25,285 @@
 
 ----------------------------------------------------------------
 
-Bugs fixed in 1.7.34 (total 63):
+Bugs fixed in 1.7.35 (total 56):
 
-   5137  avifil32 limits itself to max of 1024 frames when writing avis
-  12295  Star Trek Klingon Academy 1.02: Ship textures are partly invisible
-  15111  Adobe Photoshop CS2 tools stop working in maximised images
-  18474  DPP (Digital Photo Professional): Instruments window returns to its starting position (in the center) automatically when the image windows is selected
-  20015  X-Lite don`t work with ALSA driver correctly
-  22521  .NET 2.0 SP2 installer fails (RegSvcs.exe bootstrapper expects updated assemblies while GAC update is deferred during install)
-  22602  KP500-Utils-EN.exe fails silently to extract .kdz files
-  27616  Warcraft 3: missing mouse cursor
-  28556  ICQ 7 installer error message
-  28866  Avant Browser needs HTMLElement_get_isTextEdit
-  30220  Unhandled privileged instruction when starting Minitab 16 (Sentinel HASP hardlock.sys kernel driver tries to write to CR4/not handled in ntoskrnl emulate_instruction)
-  30420  pyjamas desktop (python26 + python-comtypes MSHTML.DLL from IE8) fails due to unsupported ReadTypeLib header
-  30836  Total Overdose: choppy audio playback with Diesel Power 3D sound system
-  32169  Multiple 64-bit applications crash on startup (GetLocaleInfo() returns improper TCHAR count for LOCALE_IFIRSTDAYOFWEEK) (PowerGrep v4.x, RegexBuddy 4.x)
-  32888  Compiling Ultracopier 0.4.0.3 inside Qt 5.0.1 results in errors from compiler
-  32954  Trying to download flash from iexplore crashes in jscript
-  33809  javascript basic DOM API functions fail
-  33940  winmm/mci tests hang on PC-BSD
-  34230  SWGEmu crashes everytime it tries to load
-  34271  Artemis 2.0 crashes when loading the splash screen
-  34330  Wine64 does not work on FreeBSD
-  34864  Call of Duty: Ghosts needs psapi/kernel32 K32EnumProcessModulesEx
-  35076  Multiple applications/installers fails due to SWbemLocator::ConnectServer being a stub (PSPad 4.5.7, Nitro PDF Professional 6.2.x, eTax 2008, GOG.com games)
-  35167  Atom Zombie Smasher, Warhammer 40K: Dawn of War GOTY (Winter Assault) on Steam doesn't start with Wine Mono 4.5.2
-  35173  Loud audio distortion using wine 1.7.6 and up.
-  35230  Macromedia Freehand 9 demo: invalid path for file association default icon causes stack overflow in winemenubuilder
-  35253  BOINC 5.8.16: uninstall fails
-  35364  Multiple applications/installers fail due to WinMGMTS_ParseDisplayName stub (PaintRibbon 1.x, MicroStation V8i)
-  35403  dplayx interactive tests crash
-  35420  Stronghold Kingdoms crashes due to ID3DXFont PreloadCharacters being a stub.
-  35754  WHO Anthro software doesn't work with Mono 4.5.2 (unimplemented System.Configuration.SettingValueElement.Unmerge)
-  35971  dsound resampler causing clicks in StarCraft when resampling to 48000
-  36092  Microsoft Office 2013 (15.0) and OneNote web installer crashes on unimplemented function IPHLPAPI.DLL.CreateSortedAddressPairs
-  36703  PlayOn 3.9.13 settings tool fails to detect system memory size (needs 'Win32_OperatingSystem' WMI class 'TotalVisibleMemorySize' property)
-  36777  vSphere 5.5 client 'hcmon.sys' driver crashes on unimplemented function ntoskrnl.exe.IoCsqInitialize
-  36785  Hero Lab 5.x fails to retrieve updates
-  36822  Multi Theft Auto: San Andreas 1.3.5 'FairplayKD.sys' driver crashes on unimplemented function ntoskrnl.exe.KeSetSystemAffinityThread
-  36844  Multiple games need X3DAudio1_7.dll (BeamNG v0.3 Tech Demo, Doom 3 BFG Edition)
-  36937  WinHttpReceiveRequest goes into infinite blocking on 304 responses
-  36991  WSAStringToAddress("2001::1", AF_INET, …) appears to succeed.
-  37265  MaxQuant 1.4/1.5 (.NET 4.5 app) needs named entry point 'Shell32.dll.SHILCreateFromPath' in 'Windows Vista' mode
-  37333  winefile command line does not support paths with spaces
-  37423  YouTube Downloader crashes
-  37565  Skype crashes trying to chat with anyone
-  37658  Endless Space crashes on startup
-  37684  Free YouTube to MP3 Converter 3.12 installer crashes on unimplemented function msvcr120.dll._wcsset_s
-  37700  Propellerhead Reason 8 needs COMCTL32.dll.381 LoadIconWithScaleDown()
-  37701  Propellerhead Reason 8 needs mfplat.dll.MFStartup
-  37714  Personal Ancestral File 5 crashes when a new line is added in 'Notes' panel
-  37723  Elevated demo silently exits
-  37727  Saya no Uta: sound is all over the place after update
-  37735  Propellerhead Reason 8 installer complains "interface not supported" during install
-  37752  Airport Tycoon 2 demo fails to load with built-in msvcp70
-  37757  Windows 8.1 Media Creation Tool: crashes due to unimplemented function VERSION.dll.GetFileVersionInfoSizeExW
-  37768  hh.exe
-  37783  N1MM PLUS Logger 1.0 (.NET 4.0 app) crashes on launch (failure to parse registration-free COM/ActiveX info from app manifest)
-  37787  Cannot install Olympus Viewer 3
-  37794  Bus Simulator 2012 crashes on startup
-  37817  Autocad2006 crashes on unimplemented function msvcp70.dll.??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z
-  37836  SteuerSparErklärung 2015: crashes when starting a new tax case
-  37839  Unable to license IAR Embedded Workbench Kickstart Edition 6.x/7.x (License Manager needs 'Win32_ComputerSystemProduct' WMI class)
-  37844  PTC Mathcad Prime 3.0 Web installer crashes ('Win32_LogicalDisk' WMI class needs to provide 'VolumeName' property)
-  37848  For loop %~$PATH:I feature works incorrect - PATH variable size limited by MAX_PATH
+   4374  Multiplayer crashes Heroes 4
+   4409  Screen corruption in Evernote 1.1
+   5776  3DMark 2001: Nature Test (#4) renders incorrectly around 40th second
+  13014  ProntoEdit NG 2.1.8 doesn't show Gallery (missing ODBC provider/notice about missing provider)
+  14522  Spellforce has bad quality ground textures
+  16526  Angels Online doesn't update (FtpFindFirstFile needs to support subdirectory and wildcard search)
+  19723  NordicBet Poker-client fails to install
+  19724  elevated demo has a terrible performance
+  20490  Tower crashes when rendering 3d-objects
+  21767  Multiple applications storing AxHostWindow instance pointer in GWLP_USERDATA crash on startup (Wine uses GWLP_USERDATA to store IOCS)(JLC's Internet TV, Anime Studio Pro 10.x)
+  23208  MS Money 2000: shows wrong/huge total amounts in accounts section of main page
+  24861  Evil Genius (GOG version): Crashes randomly on autosave
+  24967  Oxygen AVCHD player crashes when failling opening a .mov & .mts source
+  26202  SoulSeek crashes
+  26272  Unity3D 3.x/4.x - Can't create a project
+  27814  Die by the Sword: menus don't drawn unless mouse is moving
+  28951  Nitro PDF Reader crashes in Preferences->Commenting menu
+  30017  iWin Games Manager can't display html pages (without native ie)
+  30520  Zona crash when play video files with mplayer
+  31181  Unity3D first run internet registration fails
+  31438  [EA Origin]Unable to download game since the new version
+  32125  RebelBetting exits silently with wine-mono
+  32166  RebelBetting (.NET app): "Serious error" when selecting a listing
+  32205  YoukuDesktop error in initializing
+  33494  It's not possible to use tempfile module in python
+  33776  Multiple 64-bit applications and UPlay games fail in 64-bit WINEPREFIX with WinVer set to 'Windows Vista/7' (incorrect WoW64 info buffer size usage in IsWow64Process, NtQueryInformationProcess)
+  33976  Spin Tires needs native quartz for launching
+  34217  MS XPSEP GUI installer fails with .NET Framework 3.0 installed prior (custom action 'EPUpdateInstallAction' dubbed 'Hotfix for Windows XP KB971276-v3' fails)
+  35244  Blood Bowl: Legendary Edition crashes in full-screen mode when shaders enabled
+  35270  Slingplayer 1.5 installer fails in a WOW64 prefix
+  35391  xcopy doesn't support /v (Samsung Magician Software 4.2)
+  35527  RebelBetting: maximised window is not fully drawn
+  35894  TSM Casin crashes on start in jscript
+  36009  secur32/schannel test fails with WINEDEBUG=warn+heap
+  36368  MicrosoftFixit50588 tool raises a vbscript parsing error (single-line 'If...Then' with trailing 'End If')
+  36767  iexplore http://whatsmyuseragent.com crashes in jscript
+  36964  Unity3D crashes on startup license activation window (has workaround)
+  37017  KEY_WOW64_32KEY doesn't work properly after opening HKLM\Software key.
+  37023  winhttp: HEAD-requests are not handled correctly (Marvel Heroes 2015 launcher)
+  37113  Cannot move (drag n drop) objects in Illustrator CS6 using the selection tool (V)
+  37185  DirectPlayCreate fails to create instance in the game "Swing"
+  37537  Tages v5.x DRM driver needs 'irp.Tail.Overlay.OriginalFileObject' initialized with stub file object
+  37748  Stranded II shows text/icons in wrong colors
+  37807  Anno 2070: digit group separators are displayed incorrectly
+  37810  Accordance 11 crashes on startup.
+  37866  Multiple .NET applications fail due to wbemdisp:services_InstancesOf stub (PaintRibbon 1.x)
+  37874  Copy-pastie in implementation of VarFormatNumber
+  37882  user32.GetKeyboardLayoutNameW can't handle NULL out parameter, causing crash in custom application
+  37891  Firefox 35.0 installer crashes ('INetFwAuthorizedApplication::IpVersion' property accessors are stubs)
+  37898  QQ6.7 crashes due to unimpl msvcr100._vscprintf_p
+  37907  The Incredible Adventures of Van Helsing (64-bit, Steam) crashes on startup (loading of frames from .ani cursors causes heap corruption)
+  37912  Shadowgrounds - rendering issues
+  37924  VBA71 : unimplemented function msi.dll.MsiProvideComponentA
+  37931  Dead Space 2 (Steam) crashes on start
+  37933  Texture Packer Application crashes on launch
+  37943  Falco 6 Contabilità crashes
 
 ----------------------------------------------------------------
 
-Changes since 1.7.33:
+Changes since 1.7.34:
 
-Aidan Thornton (1):
-      quartz: Implement IFilterGraph2::AddSourceFilterForMoniker.
-
-Akihiro Sagawa (2):
-      advapi32: Remove unused parameter.
-      advapi32/tests: Add more KEY_WOW64_32KEY tests for 64-bit.
-
-Alex Henrie (4):
-      kernel32/tests: Add tabular UTF-7 encoding tests.
-      x3daudio1_7: Add stub DLL.
-      dpvoice: Decrement reference count in Release functions.
-      kernel32/tests: Add tabular UTF-7 decoding tests.
-
-Alexandre Julliard (1):
-      winspool.drv: Don't crash if the ppd directory cannot be created.
+Akihiro Sagawa (3):
+      advapi32: Fix HKLM\Software handling when opening with KEY_WOW64_32KEY.
+      msi: Open 32-bit component registry keys with KEY_WOW64_32KEY flag.
+      msi: Remove 32-bit component registry keys with KEY_WOW64_32KEY flag.
 
 Alistair Leslie-Hughes (1):
-      jscript: Support PROPERTYGET in Date Value.
+      dplay: Add missing defines.
 
-Amine Khaldi (1):
-      shdocvw: Fix inverted StopWatch forwards.
+Andrew Eikum (1):
+      wined3d: Fix spec file entry for wined3d_texture_create.
 
-Andrew Eikum (5):
-      winmm: Allow larger MMTIME sizes.
-      mshtml: Support new window targets for FORM elements.
-      mmdevapi: More accurately track device position.
-      wineoss.drv: Don't use SNDCTL_DSP_GETISPACE.
-      dsound: Don't send notify events before played range.
-
-André Hentschel (4):
-      loader: Treat BSDs architecture independent for wine64.
-      ntdll: Always define UTIME_OMIT if not yet defined.
-      configure: Fix check for cms.
-      Update copyright info for 2015.
+André Hentschel (3):
+      kernel32/tests: Don't test function directly when reporting GetLastError().
+      user32/tests: Don't test function directly when reporting GetLastError().
+      odbc32: Add winediag message when no drivers could be found.
 
 Aric Stewart (1):
-      usp10: Correct an off-by-one error in page cache allocation.
+      gdi32: Do not install fonts with a family name that is too long.
 
-Austin English (6):
-      comctl32: Add a stub for LoadIconWithScaleDown.
-      include: Flesh out IEnumWIA_DEV_INFO.
-      version: Add stubs for GetFileVersionInfoSizeExA/W.
-      version: Add stubs for GetFileVersionInfoExA/W.
-      include/ddk: Add csq.h.
-      ntoskrnl.exe: Add a stub for IoCsqInitialize.
+Austin English (1):
+      iphlpapi: Add FreeMibTable implementation.
 
 Axel Davy (2):
-      d3d9/tests: Fix volume_dxt5_test getPixelColor check.
-      d3d9/tests: Fix test_3dc_formats getPixelColor check.
+      d3d8/tests: Fix volume_dxt5_test getPixelColor check.
+      d3d8/tests: Fix test_3dc_formats getPixelColor check.
 
-Bruno Jesus (13):
-      winefile: Allow paths with spaces.
-      ws2_32: Ensure an IPv6 is not recognized as IPv4 in WSAStringToAddress.
-      wininet: Handle CERT_TRUST_IS_NOT_SIGNATURE_VALID in netconn_verify_cert().
-      avifil32: Remove the 1024 frame limit when recording AVI files.
-      po: Update Brazilian Portuguese translation.
-      po: Update Portuguese translation.
-      ws2_32: Better trace __WSAFDIsSet.
-      iphlpapi: Add a stub for CreateSortedAddressPairs().
-      include: Add support for WS_ prefixed IPX names in wsnwlink.h.
-      secur32: Always tell the user that libgnutls could not be loaded.
-      cmd: Ensure environment variables fit in memory.
-      ws2_32: Print the correct variable.
-      ws2_32/tests: Show that send/recv functions set last error to zero on success.
+Bruno Jesus (9):
+      ws2_32: Ensure recv functions set last error to zero when they succeed.
+      ws2_32: Prefer SetLastError over WSASetLastError.
+      rsaenh: Don't reset the salt length after setting a salt for Base and Strong providers.
+      ws2_32: Trace getpeername() result.
+      iphlpapi: Set 0.0.0.0 as the IP and mask of disconnected interfaces.
+      oleaut32: Fix copy & paste issue in VarFormatNumber.
+      dplayx: Cache GUID values so they persist after enumeration.
+      user32: Allocate memory based on HICON instead of DWORD to fix 64 bit problems.
+      ws2_32: getaddrinfo must SetLastError on success or failure.
 
-Dmitry Kozliuk (1):
-      winecfg: Fix title reset when removing application from the list.
+Changhui Liu (1):
+      gdiplus: Fix get_graphics_bounds when window origin point changed.
 
-Drew Ronneberg (2):
-      winemenubuilder: Prevent recursion by calling open_module_icon() instead of open_icon()
-      winemenubuilder: Eliminate an unused variable.
+Charles Davis (5):
+      winebuild: Make emitting mod_*_func sections on Mac OS respect the pointer size.
+      kernel32: Recognize 64-bit Mach-O modules, too.
+      kernel32: Don't use %gs on 64-bit Mac OS.
+      server: Use mach_vm_* functions instead of the old vm_* functions.
+      msvcrt: Support 64-bit platforms that don't have finitef or isnanf.
 
 Erich Hoover (1):
-      ntdll: Unify retrieving the attributes of a file.
+      winex11.drv: Update the check for broken nVidia RandR to test for the number of resolutions instead of the number of modes.
 
-François Gouget (11):
-      ws2_32: Add a trailing '\n' to a FIXME() call.
-      jscript: Add a trailing '\n' to an ok() call.
-      shell32: Fix a trailing '\n' in a FIXME() call.
-      shell32: Fix the IDS_PERSONAL hardcoded default.
-      shell32: Reset pszHome if it's not usable so we don't try to reuse it when setting up the Desktop symlink.
-      mshtml: Make create_document_fragment() static.
-      winex11.drv: Make X11DRV_PALETTE_ComputeColorShifts() static.
-      combase: Remove an unused default debug channel.
-      dwrite: Make free_glyph_outline() static.
-      riched20: Move DestroyIRichEditOle() into IRichEditOle:Release().
-      ws2_32: Add a trailing '\n' to a TRACE() call.
+François Gouget (3):
+      dsound: Make DSOUND_FindSpeakerConfig() static.
+      dsound: Reorder the interfaces to remove the need for forward declarations.
+      dsound: Make some DirectSoundDevice_*() functions static.
 
 Gerald Pfeifer (1):
-      wordpad: Avoid an out-of-bounds array access in registry_set_filelist.
+      makefiles: Support building with non-default LD.
 
-Hans Leidekker (19):
-      mlang: Add a stub implementation of IMultiLanguage3::DetectOutboundCodePageInIStream.
-      wininet: Use a helper function to remove request headers.
-      wininet/tests: Add a test to show that the Content-Length header is not updated when a request is reused.
-      rpcrt4: Make sure the Content-Length header is set correctly when preparing the out pipe.
-      winhttp/tests: Use a wait event instead of an unconditional sleep in the server thread.
-      advapi32: Return an error from RegSetValueExW if passed a NULL data pointer and non-zero size.
-      wbemprox: Implement Win32_LogicalDisk::VolumeName.
-      wbemdisp: Add a stub implementation of ISWbemServices.
-      wbemprox: Implement Win32_SoundDevice::StatusInfo.
-      wbemprox: Implement Win32_VideoController::VideoProcessor.
-      wbemprox: Implement Win32_NetworkAdapterConfiguration.DNSHostName.
-      wbemprox: Implement Win32_ComputerSystemProduct.UUID.
-      xcopy: Ignore the /V option.
-      wbemdisp: Add IDispatch support to the services object.
-      wbemdisp: Forward SWbemLocator::ConnectServer to IWbemLocator::ConnectServer.
-      wbemdisp: Add a stub implementation of ISWbemObject.
-      wbemdisp: Add a stub implementation of ISWbemObjectSet.
-      wbemdisp: Add support for parsing WMI monikers.
-      wbemdisp/tests: Add initial tests.
+Hans Leidekker (12):
+      wbemdisp: Implement ISWbemServices::InstancesOf.
+      wbemdisp: Implement ISWbemObjectSet::get__NewEnum.
+      wbemdisp: Implement ISwbemObject::GetIDsOfNames.
+      wbemdisp: Implement ISWbemObject::Invoke.
+      wbemdisp: Reimplement ISWbemObjectSet::get__NewEnum on top of IEnumWbemClassObject::Clone.
+      kernel32: Retrieve the system affinity mask from ntdll.
+      ntdll: Fix calculation of process and thread affinity masks on systems with a large number of processors.
+      winhttp/tests: Keep the connection alive in a couple of tests.
+      winhttp: Don't try to read data after a HEAD request.
+      wbemprox: Implement Win32_ComputerSystemProduct.IdentifyingNumber.
+      wbemprox: Implement Win32_BaseBoard.Product.
+      msi: Add a partial implementation of MsiProvideComponent.
 
-Henri Verbeet (3):
-      wined3d: Reject wined3d_texture_create() calls without explicit level count.
-      wined3d: Allow initial texture contents to be specified with wined3d_texture_create().
-      wined3d: Specify the initial texture contents with wined3d_texture_create() in wined3d_device_create_cursor_texture().
+Hao Peng (3):
+      wbemprox: Implement Win32_Processor.ProcessorType.
+      wbemprox: Implement Win32_DiskDrive.PNPDeviceID.
+      wbemprox: Implement Win32_BaseBoard.Version.
 
-Hugh McMaster (2):
-      msvcrt: Fix a spelling error.
-      msvcrt/tests: Add more tests for _vsnwprintf.
+Henri Verbeet (10):
+      wined3d: Introduce struct wined3d_sampler_desc.
+      wined3d: Store a struct wined3d_sampler_desc in struct gl_texture.
+      wined3d: Replace wined3d_texture_apply_state_changes() with wined3d_texture_apply_sampler_desc().
+      wined3d: Create GL sampler objects for wined3d sampler objects.
+      wined3d: Merge shader_glsl_load_vsamplers() and shader_glsl_load_psamplers().
+      wined3d: Implement WINED3DSIH_SAMPLE in the GLSL shader backend.
+      wined3d: Handle the SM4 SV_POSITION pixel shader input semantic in the GLSL shader backend.
+      d3d10core/tests: Add a basic texturing test.
+      wined3d: Use the same flags for wined3d_texture_set_color_key() and the "color_key_flags" field it sets.
+      wined3d: Properly cleanup samplers on wined3d_device_reset() / wined3d_device_uninit_3d().
 
-Jacek Caban (29):
-      mshtml: Resolve duplicated IDispatch entries as soon as they are processed.
-      jscript: Added test of Date object default value.
-      mshtml: Added IHTMLStyle::styleFloat attribute implementation.
-      mshtml: Improved IHTMLStyle3::zoom stub.
-      mshtml: Handle VT_ERROR in IHTMLSelectElement::add.
-      mshtml: Added IHTMLElement4::focusin semi-stub implementation.
-      d3d11.idl: Added D3D11_APPEND_ALIGNED_ELEMENT declaration.
-      mshtml: Added IHTMLDOMTextNode::splitText implementation.
-      mshtml: Include nsbody reference in cycle collection.
-      mshtml: Added IHTMLElement::get_isTextEdit implementation.
-      urlmon: Store URLs as const char* in mime_tests.
-      urlmon: Skip query and hash part in find_mime_from_url.
-      urlmon: Use find_mime_from_ext directly in file protocol handler.
-      mshtml: Treat empty bstrHref as not specified in IHTMLDocument2::createStyleSheet.
-      mshtml: Added nsIEmbeddingSiteWindow::GetDimensions implementation.
-      mshtml: Added screenLeft and screenTop properties implementation.
-      mshtml: Use standard list to store task queue.
-      mshtml: Flush pending document node tasks before firing onload event.
-      mshtml: Delay onreadystateevent notification if script elemenet is not added by parser.
-      mshtml/tests: Added script element readyState and onreadystatechange tests.
-      mshtml: Correctly handle NULL active element in IHTMLDocument2::get_activeElement.
-      mshtml: Allow '#' to be the first char of resource name in res protocol.
-      mshtml: Introduced new representation of range point and use that in range_to_string instead of trying to iterate by nodes.
-      mshtml: Reimplemented IHTMLTxtRange::moveStart using new range point representation.
-      mshtml: Use new end point representation in IHTMLTxtRange::expand("word") implementation.
-      mshtml: Use new range point representation in all cases.
-      include: Added d3d11_1.idl.
-      mshtml: Use document encoding for scripts.
-      mshtml: Use debugstr_mshtml_guid in omnavigator.c.
+Huw D. M. Davies (2):
+      user32/tests: Add tests for setting and getting the background brush.
+      user32: Actually use the menu's background brush.
 
-Janis Lukss (1):
-      wine.inf: Added ProductId registry key also to "Windows NT".
+Jacek Caban (8):
+      activscp.idl: Added SCRIPT_E_* error codes.
+      jscript: Don't allow function execution if script engine is not in started state.
+      jscript: Added more SCRIPTSTATE_STARTED tests.
+      mshtml: Removed TRACEs from dispex_query_interface.
+      secur32/tests: Don't call InitializeSecurityContext on an uninitialized buffer.
+      mshtml: Improved IOleCommandTarget::QueryStatus implementation.
+      mshtml: Added OLECMDID_OPTICAL_ZOOM tests and stub.
+      mshtml: Added Exec(OLECMDID_OPTICAL_ZOOM) implementation.
 
-Jon Doron (1):
-      kernel32: Fix write_raw_resources to support 32 and 64 PE formats.
+Ken Thomases (1):
+      winemac: Fix conversion of empty RECT to an empty CGRect.
 
-Jonathan Vollebregt (2):
-      reg/tests: Test for integer overflow.
-      reg/tests: Test REG_NONE.
+Marcus Meissner (2):
+      combase: Reorder checks (Coverity).
+      mshtml: Check for failed allocs (Coverity).
 
-Ken Thomases (2):
-      winemac: Ignore Cocoa child windows which aren't instances of WineWindow.
-      shell32: Don't append a trailing space to the arguments in a shell link if the command info has an empty parameters string.
+Mark Harmstone (4):
+      winealsa: Do not destroy remapping info on IsFormatSupported.
+      dsound: Degrade speaker config if too many channels.
+      dsound: Pretend we have hardware buffers.
+      xaudio2_7: Add stub DLL.
 
-Mark Harmstone (11):
-      dsound: Remove unused struct entries.
-      dsound: Use array for channel volumes.
-      winealsa: Return PKEY_AudioEndpoint_PhysicalSpeakers device prop.
-      dsound: NOP on SetSpeakerConfig.
-      dsound: Get speaker config from mmdevice props.
-      winealsa: Support up to 6 channels.
-      include: Add xaudio2.h.
-      dsound: Parse speaker config.
-      dsound: Do not use panning to set sound position.
-      dsound: Support quadraphonic sound.
-      dsound: Support 5.1 sound.
+Matteo Bruni (14):
+      wined3d: Use the core version of the gl*Buffer* functions.
+      wined3d: Use the core glColorMaski function.
+      opengl32: Update to GL 4.5.
+      opengl32: Store the OpenGL context version in the handle value.
+      dxgi: Fix a comment typo.
+      wined3d: Use the core gl*CompressedTex* functions.
+      wined3d: Use the core version of glDrawBuffers.
+      wined3d: Use the core version of glDrawElementsInstanced.
+      wined3d: Always use the core version of the glPointParameteri function.
+      wined3d: Add separate stencil state setup via GL 2.0+ core functions.
+      wined3d: Don't normalize R8G8B8A8_UINT attributes.
+      wined3d: Properly initialize the last two components of R16G16_SINT attributes.
+      wined3d: Use the core version of GL vertex attribute functions where possible.
+      wined3d: Use the core version of the shader object functions.
 
-Martin Storsjo (3):
-      combase: Implement creation and deletion of HSTRING objects.
-      combase: Implement functions for accessing HSTRING objects.
-      combase: Implement functions for HSTRING_BUFFER.
+Michael Müller (1):
+      shlwapi: Correctly treat '.' when enumerating files in PathIsDirectoryEmptyW.
 
-Marton Balint (1):
-      dsound: Convert freqAdjust and freqAcc to integers.
+Michael Stefaniuc (40):
+      strmbase: Remove an unused variable (PVS-Studio).
+      winmm: Remove an unused variable (PVS-Studio).
+      wintab32: Remove an always TRUE conditional expression (PVS-Studio).
+      wrc: Remove some more always-true conditions.
+      comctl32: Remove an unused variable assigment (PVS-Studio).
+      comdlg32: Remove unused variable assigments (PVS-Studio).
+      d3drm: Remove an unused assignment (PVS-Studio).
+      d3dx9_36/tests: Actually test retrieve_device_state calls (PVS-Studio).
+      devenum: Use the return value of __wine_register_resources (PVS-Studio).
+      dmband/tests: Remove an unused assigment (PVS-Studio).
+      dmcompos/tests: Remove an unused assigment (PVS-Studio).
+      dmime/tests: Remove unused assigments (PVS-Studio).
+      dmloader/tests: Test the return of CoCreateInstance (PVS-Studio).
+      dmscript/tests: Remove an unused assigment (PVS-Studio).
+      dmstyle/tests: Remove unused assigments (PVS-Studio).
+      dmusic/tests: Remove an unused assigment (PVS-Studio).
+      dswave/tests: Remove an unused assigment (PVS-Studio).
+      gdiplus/tests: Actually test a GdipCreateFromHDC call (PVS-Studio).
+      mstask/tests: Remove an unused assignment (PVS-Studio).
+      mciwave: Remove an unused assigment (PVS-Studio).
+      ole32/tests: Actually test some return codes (PVS-Studio).
+      ole32/tests: Remove unused assignments (PVS-Studio).
+      ole32: Return the buffer pointer when WdtpInterfacePointer_UserMarshal fails.
+      msxml3/tests: Remove an unused assignment (PVS-Studio).
+      msxml3/tests: Actually test the return values (PVS-Studio).
+      ntdll/tests: Remove unused assigments (PVS-Studio).
+      oleaut32/tests: Uncomment and fix a test (PVS-Studio).
+      oleaut32: Just stop instead of erroring out on 8 or 9 in octal numbers.
+      oleaut32: Remove an unused assignment (PVS-Studio).
+      qedit: Remove an unused and wrong assignment (PVS-Studio).
+      quartz: Remove some unused assignments (PVS-Studio).
+      scrrun/tests: Actually test the return values (PVS-Studio).
+      schedsvc/tests: Actually test a return value (PVS-Studio).
+      strmbase: Remove an unused assignment (PVS-Studio).
+      strmbase: Handle the failure of CoCreateInstance (PVS-Studio).
+      user32/tests: Remove an unused assignment (PVS-Studio).
+      usp10: Remove an unused assignment (PVS-Studio).
+      winex11.drv: Remove an unused assignment (PVS-Studio).
+      wininet: Remove an unused assignment (PVS-Studio).
+      wintrust/tests: Remove an unused assignment (PVS-Studio).
 
-Matteo Bruni (6):
-      d3d9/tests: Remove a couple duplicate lines.
-      winemac: Make the implementation of clearToBlackIfNeeded compatible with core contexts.
-      winemac: Implement wglCreateContextAttribsARB.
-      wined3d: Inline GL_EXT_FUNCS_GEN in load_gl_funcs.
-      wined3d: Prefer the core glActiveTexture function.
-      wined3d: Use the core version of the glBlend* functions.
+Nikolay Sivov (14):
+      user32: Handle NULL argument in GetKeyboardLayoutNameW().
+      winhttp: Fix typeinfo refcount in GetTypeInfo().
+      winhttp: Release typeinfos and typelib on dll unload.
+      hnetcfg: Return NET_FW_IP_VERSION_ANY as ipVersion property value.
+      hnetcfg: Fix refcount of returned ITypeInfo pointer.
+      scrrun: Fix refcount on GetTypeInfo().
+      vbscript: Support 'End If' for single line If statements.
+      dwrite: Initial support of cluster metrics computation.
+      dwrite: Implement GetClusterMetrics().
+      dwrite/tests: Additional test for Draw().
+      hnetcfg: Release typeinfos and typelib on dll unload.
+      msxml3: Remove child node in one place in node_insert_before().
+      dwrite/tests: Basic test for GetTypographicFeatures().
+      dwrite: Initial implementation of GetGlyphPlacements().
 
-Michael Stefaniuc (11):
-      oleaut32/tests: Remove duplicated subexpressions (PVS-Studio).
-      d3d9: Don't assert for shaders with the wrong vtbl.
-      mapi32/tests: Test the correct return code (PVS-Studio).
-      mscms: Remove always false if subexpression (PVS-Studio).
-      msvfw32: Remove always false if subexpression (PVS-Studio).
-      mlang/tests: Avoid always true ok() checks (PVS-Studio).
-      netapi32: Remove always true conditional expression (PVS-Studio).
-      oledb32/tests: Simplify some ok() checks (PVS-Studio).
-      quartz: Remove always true if subexpression (PVS-Studio).
-      quartz: Remove an unused variable (PVS-Studio).
-      quartz: Simplify code flow logic (PVS-Studio).
+Piotr Caban (3):
+      ole32: Only change DoDragDrop return value on IDropTarget::Drop failure.
+      msvcrt: Add _vscprintf_p implementation.
+      msvcrt: Drop read buffer in _flsbuf.
 
-Nikolay Sivov (34):
-      gdi32: Remove some useless returns.
-      dwrite: Initial GetGlyphRunOutline() implementation.
-      dwrite: Support outlines with oblique simulation.
-      dwrite: Font collection pointer is never null when creating text format.
-      dwrite: Release system collection pointer after using it, not before.
-      dwrite: Added stub EUDC font collection.
-      shell32: Added stub IPropertyStore for a shell link object.
-      dwrite: Split each text range into runs by script.
-      dwrite: Split runs according to BiDi levels.
-      dwrite: Store nominal breakpoint data in layout.
-      dwrite: Update breakpoints in case of inline objects.
-      ntdll: Accept asm.v2 as default namespace.
-      ntdll: Fix 'description' element parsing to allow empty elements.
-      msdmo: Registry API functions don't return HRESULT codes.
-      msdmo: Fix RegOpenKeyExW() failure condition.
-      ole32: Return END_OF_CHAIN for chains starting with special sector values.
-      dwrite: Cleanup layout instance creation, handle memory allocation failures.
-      dwrite: Set string pointer in run description when splitting by bidi levels.
-      msdmo: Use specified category in DMOUnregister().
-      msdmo: Fix DMOUnregister() when running on clean wineprefix.
-      ntdll: Skip context dependencies that have allowDelayedBinding attribute set.
-      dwrite: Store locale name for each text range.
-      dwrite: Release FreeType resources on dll unload.
-      dwrite: Fix range comparison by locale name.
-      dwrite: Support family name attribute for ranges.
-      dwrite: Unify temp value variable name.
-      dwrite: Move range bounds check to an attribute setting helper.
-      oleaut32: Use CoTaskMem* functions for safearrays.
-      dwrite/tests: Fix buffer overflow when filling test string.
-      dwrite: Create fontface instance for each run.
-      dwrite: Store cluster map and glyph indices for each run.
-      dwrite: Set glyph advances and offsets for each run.
-      dwrite: Store additional properties for gdi-compatible layouts.
-      dwrite: Use gdi-compatible placements in case of gdi-compatible layouts.
+Qian Hong (10):
+      atl100/tests: Added more tests for class AtlAxWin100 and AtlAxWinLic100.
+      atl100/tests: Added tests for AtlAxAttachControl.
+      atl: Don't conflict GWLP_USERDATA with user applications.
+      ntdll: Fixed buffer size checking for ProcessWow64Information on 64bit in NtQueryInformationProcess.
+      kernel32: Make SetUnhandledExceptionFilter hotpatchable.
+      ntdll: Make RtlAddVectoredExceptionHandler hotpatchable.
+      ole32: Make CoUninitialize and OleUninitialize hotpatchable.
+      kernel32: Fixed buffer size on 64bit in IsWow64Process.
+      atl: Improved content type handling of AtlAxCreateControlEx.
+      atl100/tests: Added tests for AtlAxCreateControlEx.
 
-Piotr Caban (9):
-      msvcrt: Add _wcsset_s implementation.
-      msvcp70: Fix basic_filebuf definition.
-      msvcp70: Fix ios_base definition.
-      msvcr120: Add _fdtest function implementation.
-      user32: Only store dialog focus when window is hidden or inactive.
-      msvcp70: Add basic_ifstream(name, mode) constructor implementation.
-      winex11.drv: Don't resize hidden windows on ConfigureNotify event.
-      msvcp: Fix setting decimal point and thousands separator in numpunct_wchar__Init.
-      msvcp: Fix format parsing in time_put_wchar_put_format.
+Sebastian Lackner (2):
+      wininet: Fix handling of subdirectory in FtpFindFirstFile.
+      ntoskrnl: Initialize irp.Tail.Overlay.OriginalFileObject with stub file object.
 
-Sebastian Lackner (5):
-      include: Add mferror.h header.
-      mfplat: Implement stubs for MFStartup and MFShutdown.
-      kernel32: Return proper char count in get_registry_locale_info.
-      shlwapi: Add implementation for StrCatChainW.
-      psapi: Implement semi-stub for K32EnumProcessModulesEx.
-
-Sergey Kalinichev (1):
-      ntdll: Add stub for RtlSetHeapInformation.
-
-Seán de Búrca (1):
-      kernel32: Implement Get{Time,Date}FormatEx.
-
-Stefan Leichter (3):
-      shell32: Export SHILCreateFromPath by name too.
-      ntoskrnl.exe: Add stub for KeSetSystemAffinityThread.
-      ntoskrnl.exe: Emulate instruction mov eax,cr4.
-
-Yifu Wang (1):
-      msvcp120: Implemented xtime functions.
+Vincent Povirk (1):
+      xmllite: Length is optional in IXmlReader::GetQualifiedName.
 
 --
 Alexandre Julliard
diff --git a/AUTHORS b/AUTHORS
index 73b7192..8e6c33d 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -218,6 +218,7 @@
 Chad Fraleigh
 Chad Powell
 Chae Jong Bin
+Changhui Liu
 Charles Blacklock
 Charles Davis
 Charles Duffy
diff --git a/VERSION b/VERSION
index 03d1d06..f993db9 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-Wine version 1.7.34
+Wine version 1.7.35
diff --git a/configure b/configure
index b6660bd..4774513 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.34.
+# Generated by GNU Autoconf 2.69 for Wine 1.7.35.
 #
 # 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.34'
-PACKAGE_STRING='Wine 1.7.34'
+PACKAGE_VERSION='1.7.35'
+PACKAGE_STRING='Wine 1.7.35'
 PACKAGE_BUGREPORT='wine-devel@winehq.org'
 PACKAGE_URL='http://www.winehq.org'
 
@@ -2010,7 +2010,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.34 to adapt to many kinds of systems.
+\`configure' configures Wine 1.7.35 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2079,7 +2079,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Wine 1.7.34:";;
+     short | recursive ) echo "Configuration of Wine 1.7.35:";;
    esac
   cat <<\_ACEOF
 
@@ -2275,7 +2275,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Wine configure 1.7.34
+Wine configure 1.7.35
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2793,7 +2793,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.34, which was
+It was created by Wine $as_me 1.7.35, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -18422,7 +18422,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.34, which was
+This file was extended by Wine $as_me 1.7.35, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18493,7 +18493,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.34
+Wine config.status 1.7.35
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
