diff --git a/mingw-w64-crt/revstamp.h b/mingw-w64-crt/revstamp.h
index ede412e..fe299d9 100644
--- a/mingw-w64-crt/revstamp.h
+++ b/mingw-w64-crt/revstamp.h
@@ -1,4 +1,4 @@
 /* Do not edit. Autogenerated.  */
-#define __MINGW_W64_REV	"4784"
-#define __MINGW_W64_REV_STAMP "2012-01-30"
+#define __MINGW_W64_REV	"4831"
+#define __MINGW_W64_REV_STAMP "2012-02-24"
 
diff --git a/mingw-w64-headers/include/ChangeLog b/mingw-w64-headers/include/ChangeLog
index eeda61b..c76eab7 100644
--- a/mingw-w64-headers/include/ChangeLog
+++ b/mingw-w64-headers/include/ChangeLog
@@ -1,3 +1,21 @@
+2012-02-24  Ozkan Sezer  <sezeroz@gmail.com>
+
+	Merge from the trunk revs. 4790, 4807, 4809, 4815, 4816 and
+	4817 by wavael to fix some embarassing issues in dxva2api.h:
+	* dxva2api.h (Direct3DDeviceManager9): Fix COBJMACROS to use lpVtbl.
+	(DirectXVideoDecoder): Likewise.
+	(DirectXVideoAccelerationService): Likewise.
+	(DirectXVideoDecoderService): Likewise.
+	(DXVA2_E_NOT_INITIALIZED): Add missing error code.
+	(DXVA2_E_NEW_VIDEO_DEVICE): Likewise.
+	(DXVA2_E_VIDEO_DEVICE_LOCKED): Likewise.
+	(DXVA2_E_NOT_AVAILABLE): Likewise.
+	(DXVA2_ConfigPictureDecode): Change type from UINT to USHORT (msdn
+	documentation is incorrect.)
+	* dxva2api.h: Remove global packing directives and pack only the
+	DXVA_FilmGrainChar_H264, DXVA_SliceInfo and DXVA_Slice_H264_Short
+	structures.
+
 2012-01-26  Kai Tietz  <ktietz@redhat.com>
 
 	* nldef.h (NL_INTERFACE_OFFLOAD_ROD): Remove
diff --git a/mingw-w64-headers/include/dxva2api.h b/mingw-w64-headers/include/dxva2api.h
index 0e51f10..ea49933 100644
--- a/mingw-w64-headers/include/dxva2api.h
+++ b/mingw-w64-headers/include/dxva2api.h
@@ -23,6 +23,12 @@
 #define DXVA2_ProcAmp_Hue 0x0004
 #define DXVA2_ProcAmp_Saturation 0x0008
 
+#define DXVA2_E_NOT_INITIALIZED     MAKE_HRESULT(1, 4, 4096)
+#define DXVA2_E_NEW_VIDEO_DEVICE    MAKE_HRESULT(1, 4, 4097)
+#define DXVA2_E_VIDEO_DEVICE_LOCKED MAKE_HRESULT(1, 4, 4098)
+#define DXVA2_E_NOT_AVAILABLE       MAKE_HRESULT(1, 4, 4099)
+
+
 typedef struct IDirect3DDeviceManager9 IDirect3DDeviceManager9;
 typedef struct IDirectXVideoDecoderService IDirectXVideoDecoderService;
 
@@ -117,7 +123,6 @@
   DXVA2_VideoTransferMatrix_SMPTE240M   = 3 
 } DXVA2_VideoTransferMatrix;
 
-#pragma pack(push, 1)
 typedef struct _DXVA2_AYUVSample16 {
   USHORT Cr;
   USHORT Cb;
@@ -148,7 +153,7 @@
   UINT   ConfigHostInverseScan;
   UINT   ConfigSpecificIDCT;
   UINT   Config4GroupedCoefs;
-  UINT   ConfigMinRenderTargetBuffCount;
+  USHORT ConfigMinRenderTargetBuffCount;
   USHORT ConfigDecoderSpecific;
 } DXVA2_ConfigPictureDecode;
 
@@ -351,6 +356,7 @@
     };
 } DXVA_PicEntry_H264;
 
+#pragma pack(push, 1)
 typedef struct {
     USHORT  wFrameWidthInMbsMinus1;
     USHORT  wFrameHeightInMbsMinus1;
@@ -376,6 +382,7 @@
     UCHAR   intensity_interval_upper_bound[3][16];
     SHORT   comp_model_value[3][16][8];
 } DXVA_FilmGrainChar_H264;
+#pragma pack(pop)
 
 /* DXVA MPEG-I/II and VC-1 */
 typedef struct _DXVA_PictureParameters {
@@ -422,6 +429,7 @@
     WORD    Qmatrix[4][8 * 8];
 } DXVA_QmatrixData, *LPDXVA_QmatrixData;
 
+#pragma pack(push, 1)
 typedef struct _DXVA_SliceInfo {
     USHORT  wHorizontalPosition;
     USHORT  wVerticalPosition;
@@ -434,6 +442,7 @@
     USHORT  wQuantizerScaleCode;
     USHORT  wBadSliceChopping;
 } DXVA_SliceInfo, *LPDXVA_SliceInfo;
+#pragma pack(pop)
 
 typedef struct {
     USHORT wFrameWidthInMbsMinus1;
@@ -525,14 +534,15 @@
     USHORT  slice_id;
 } DXVA_Slice_H264_Long;
 
+#pragma pack(push, 1)
 typedef struct {
     UINT    BSNALunitDataLocation;
     UINT    SliceBytesInBuffer;
     USHORT  wBadSliceChopping;
 } DXVA_Slice_H264_Short;
-
 #pragma pack(pop)
 
+
 /* Constants */
 
 #define DXVA2_VideoDecoderRenderTarget 0
@@ -605,9 +615,9 @@
     END_INTERFACE
 };
 #ifdef COBJMACROS
-#define IDirectXVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
-#define IDirectXVideoDecoder_AddRef(This) (This)->pVtbl->AddRef(This)
-#define IDirectXVideoDecoder_Release(This) (This)->pVtbl->Release(This)
+#define IDirectXVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
 #define IDirectXVideoDecoder_GetVideoDecoderService(This,ppAccelServices) (This)->lpVtbl->GetVideoDecoderService(This,ppAccelServices)
 #define IDirectXVideoDecoder_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pppDecoderRenderTargets,pNumSurfaces) (This)->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pppDecoderRenderTargets,pNumSurfaces)
 #define IDirectXVideoDecoder_GetBuffer(This,BufferType,ppBuffer,pBufferSize) (This)->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize)
@@ -634,9 +644,9 @@
     END_INTERFACE
 };
 #ifdef COBJMACROS
-#define IDirectXVideoAccelerationService_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
-#define IDirectXVideoAccelerationService_AddRef(This) (This)->pVtbl->AddRef(This)
-#define IDirectXVideoAccelerationService_Release(This) (This)->pVtbl->Release(This)
+#define IDirectXVideoAccelerationService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoAccelerationService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoAccelerationService_Release(This) (This)->lpVtbl->Release(This)
 #define IDirectXVideoAccelerationService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle)
 #endif /*COBJMACROS*/
 
@@ -663,9 +673,9 @@
     END_INTERFACE
 };
 #ifdef COBJMACROS
-#define IDirectXVideoDecoderService_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
-#define IDirectXVideoDecoderService_AddRef(This) (This)->pVtbl->AddRef(This)
-#define IDirectXVideoDecoderService_Release(This) (This)->pVtbl->Release(This)
+#define IDirectXVideoDecoderService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectXVideoDecoderService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectXVideoDecoderService_Release(This) (This)->lpVtbl->Release(This)
 #define IDirectXVideoDecoderService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle)
 #define IDirectXVideoDecoderService_GetDecoderDeviceGuids(This,Count,pGuids) (This)->lpVtbl->GetDecoderDeviceGuids(This,Count,pGuids)
 #define IDirectXVideoDecoderService_GetDecoderRenderTargets(This,Guid,pCount,pFormats) (This)->lpVtbl->GetDecoderRenderTargets(This,Guid,pCount,pFormats)
@@ -696,9 +706,9 @@
     END_INTERFACE
 };
 #ifdef COBJMACROS
-#define IDirect3DDeviceManager9_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject)
-#define IDirect3DDeviceManager9_AddRef(This) (This)->pVtbl->AddRef(This)
-#define IDirect3DDeviceManager9_Release(This) (This)->pVtbl->Release(This)
+#define IDirect3DDeviceManager9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirect3DDeviceManager9_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirect3DDeviceManager9_Release(This) (This)->lpVtbl->Release(This)
 #define IDirect3DDeviceManager9_ResetDevice(This,pDevice,resetToken) (This)->lpVtbl->ResetDevice(This,pDevice,resetToken)
 #define IDirect3DDeviceManager9_OpenDeviceHandle(This,phDevice) (This)->lpVtbl->OpenDeviceHandle(This,phDevice)
 #define IDirect3DDeviceManager9_CloseDeviceHandle(This,hDevice) (This)->lpVtbl->CloseDeviceHandle(This,hDevice)
