diff --git a/mingw-w64-headers/include/ChangeLog b/mingw-w64-headers/include/ChangeLog
index e350241..97b8407 100644
--- a/mingw-w64-headers/include/ChangeLog
+++ b/mingw-w64-headers/include/ChangeLog
@@ -1,5 +1,39 @@
 2010-08-02  Ozkan Sezer  <sezeroz@gmail.com>
 
+	* objidl.h (uSTGMEDIUM): Unify using DUMMYUNIONNAME.
+	* accctrl.h (ACTRL_OVERLAPPED): Add DUMMY* names to anonymous structs
+	and/or unions.
+	* mmsystem.h (MIXERCONTROLA): Likewise.
+	(MIXERCONTROLW): Likewise.
+	(MIXERLINECONTROLSA): Likewise.
+	(MIXERLINECONTROLSW): Likewise.
+	(MIXERCONTROLDETAILS): Likewise.
+	* olectl.h (PICTDESC): Likewise.
+	* propidl.h (PROPSPEC): Likewise.
+	* winnt.h (NT_TIB): Likewise.
+	(NT_TIB32): Likewise.
+	(NT_TIB64): Likewise.
+	(IMAGE_RELOCATION): Likewise.
+	(IMAGE_IMPORT_DESCRIPTOR): Likewise.
+	(IMAGE_RESOURCE_DIRECTORY_ENTRY): Likewise.
+	(IMAGE_FUNCTION_ENTRY64): Likewise.
+	* winbase.h (SYSTEM_INFO): Likewise.
+	(PROCESS_HEAP_ENTRY): Likewise.
+	* winioctl.h (SET_PARTITION_INFORMATION_EX): Likewise.
+	(CREATE_DISK): Likewise.
+	(PARTITION_INFORMATION_EX): Likewise.
+	(DRIVE_LAYOUT_INFORMATION_EX): Likewise.
+	(DISK_DETECTION_INFO): Likewise.
+	(DISK_PARTITION_INFO): Likewise.
+	(DISK_CACHE_INFORMATION): Likewise.
+	(FILE_OBJECTID_BUFFER): Likewise.
+	* wtypes.h (CY): Likewise.
+	(DECIMAL): Likewise.
+	* winuser.h (INPUT): Likewise.
+	(RID_DEVICE_INFO): Likewise.
+
+2010-08-02  Ozkan Sezer  <sezeroz@gmail.com>
+
 	* winnt.h (LARGE_INTEGER): Add DUMMYSTRUCTNAME to anonymous struct.
 	(ULARGE_INTEGER): Likewise.
 
diff --git a/mingw-w64-headers/include/accctrl.h b/mingw-w64-headers/include/accctrl.h
index 5e39003..79e9628 100644
--- a/mingw-w64-headers/include/accctrl.h
+++ b/mingw-w64-headers/include/accctrl.h
@@ -351,7 +351,7 @@
       __MINGW_EXTENSION union {
 	PVOID Provider;
 	ULONG Reserved1;
-      };
+      } DUMMYUNIONNAME;
       ULONG Reserved2;
       HANDLE hEvent;
     } ACTRL_OVERLAPPED,*PACTRL_OVERLAPPED;
diff --git a/mingw-w64-headers/include/mmsystem.h b/mingw-w64-headers/include/mmsystem.h
index 98dab9c..e5afc91 100644
--- a/mingw-w64-headers/include/mmsystem.h
+++ b/mingw-w64-headers/include/mmsystem.h
@@ -1131,11 +1131,11 @@
       __MINGW_EXTENSION struct {
 	LONG lMinimum;
 	LONG lMaximum;
-      };
+      } DUMMYSTRUCTNAME;
       __MINGW_EXTENSION struct {
 	DWORD dwMinimum;
 	DWORD dwMaximum;
-      };
+      } DUMMYSTRUCTNAME2;
       DWORD dwReserved[6];
     } Bounds;
     union {
@@ -1157,11 +1157,11 @@
       __MINGW_EXTENSION struct {
 	LONG lMinimum;
 	LONG lMaximum;
-      };
+      } DUMMYSTRUCTNAME;
       __MINGW_EXTENSION struct {
 	DWORD dwMinimum;
 	DWORD dwMaximum;
-      };
+      } DUMMYSTRUCTNAME2;
       DWORD dwReserved[6];
     } Bounds;
     union {
@@ -1248,7 +1248,7 @@
     __MINGW_EXTENSION union {
       DWORD dwControlID;
       DWORD dwControlType;
-    };
+    } DUMMYUNIONNAME;
     DWORD cControls;
     DWORD cbmxctrl;
     LPMIXERCONTROLA pamxctrl;
@@ -1260,7 +1260,7 @@
     __MINGW_EXTENSION union {
       DWORD dwControlID;
       DWORD dwControlType;
-    };
+    } DUMMYUNIONNAME;
     DWORD cControls;
     DWORD cbmxctrl;
     LPMIXERCONTROLW pamxctrl;
@@ -1288,7 +1288,7 @@
     __MINGW_EXTENSION union {
       HWND hwndOwner;
       DWORD cMultipleItems;
-    };
+    } DUMMYUNIONNAME;
     DWORD cbDetails;
     LPVOID paDetails;
   } MIXERCONTROLDETAILS,*PMIXERCONTROLDETAILS,*LPMIXERCONTROLDETAILS;
diff --git a/mingw-w64-headers/include/objidl.h b/mingw-w64-headers/include/objidl.h
index 2507a33..cf08875 100644
--- a/mingw-w64-headers/include/objidl.h
+++ b/mingw-w64-headers/include/objidl.h
@@ -2185,21 +2185,6 @@
     byte data[1 ];
   } RemSTGMEDIUM;
 
-#ifdef NONAMELESSUNION
-  typedef struct tagSTGMEDIUM {
-    DWORD tymed;
-    union {
-      HBITMAP hBitmap;
-      HMETAFILEPICT hMetaFilePict;
-      HENHMETAFILE hEnhMetaFile;
-      HGLOBAL hGlobal;
-      LPOLESTR lpszFileName;
-      IStream *pstm;
-      IStorage *pstg;
-    } u;
-    IUnknown *pUnkForRelease;
-  } uSTGMEDIUM;
-#else
   typedef struct tagSTGMEDIUM {
     DWORD tymed;
     __MINGW_EXTENSION union {
@@ -2210,10 +2195,10 @@
       LPOLESTR lpszFileName;
       IStream *pstm;
       IStorage *pstg;
-    };
+    } DUMMYUNIONNAME;
     IUnknown *pUnkForRelease;
   } uSTGMEDIUM;
-#endif
+
   typedef struct _GDI_OBJECT {
     DWORD ObjectType;
     union __MIDL_IAdviseSink_0002 {
diff --git a/mingw-w64-headers/include/olectl.h b/mingw-w64-headers/include/olectl.h
index f088cc8..a40d061 100644
--- a/mingw-w64-headers/include/olectl.h
+++ b/mingw-w64-headers/include/olectl.h
@@ -110,7 +110,7 @@
     struct {
       HENHMETAFILE hemf;
     } emf;
-  };
+  } DUMMYUNIONNAME;
 } PICTDESC,*LPPICTDESC;
 
 typedef long OLE_XPOS_PIXELS;
diff --git a/mingw-w64-headers/include/propidl.h b/mingw-w64-headers/include/propidl.h
index 070f3dc..2696f7f 100644
--- a/mingw-w64-headers/include/propidl.h
+++ b/mingw-w64-headers/include/propidl.h
@@ -350,7 +350,7 @@
     __MINGW_EXTENSION union {
       PROPID propid;
       LPOLESTR lpwstr;
-    };
+    } DUMMYUNIONNAME;
   } PROPSPEC;
 
   typedef struct tagSTATPROPSTG {
diff --git a/mingw-w64-headers/include/winbase.h b/mingw-w64-headers/include/winbase.h
index a7f1833..2ecf4b6 100644
--- a/mingw-w64-headers/include/winbase.h
+++ b/mingw-w64-headers/include/winbase.h
@@ -383,8 +383,8 @@
       __MINGW_EXTENSION struct {
 	WORD wProcessorArchitecture;
 	WORD wReserved;
-      };
-    };
+      } DUMMYSTRUCTNAME;
+    } DUMMYUNIONNAME;
     DWORD dwPageSize;
     LPVOID lpMinimumApplicationAddress;
     LPVOID lpMaximumApplicationAddress;
@@ -1184,7 +1184,7 @@
 	LPVOID lpFirstBlock;
 	LPVOID lpLastBlock;
       } Region;
-    };
+    } DUMMYUNIONNAME;
   } PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY,*PPROCESS_HEAP_ENTRY;
 
 #define PROCESS_HEAP_REGION 0x1
diff --git a/mingw-w64-headers/include/winioctl.h b/mingw-w64-headers/include/winioctl.h
index ebc65ce..6ad5b46 100644
--- a/mingw-w64-headers/include/winioctl.h
+++ b/mingw-w64-headers/include/winioctl.h
@@ -550,7 +550,7 @@
   __MINGW_EXTENSION union {
     SET_PARTITION_INFORMATION_MBR Mbr;
     SET_PARTITION_INFORMATION_GPT Gpt;
-  };
+  } DUMMYUNIONNAME;
 } SET_PARTITION_INFORMATION_EX,*PSET_PARTITION_INFORMATION_EX;
 
 typedef struct _CREATE_DISK_GPT {
@@ -567,7 +567,7 @@
   __MINGW_EXTENSION union {
     CREATE_DISK_MBR Mbr;
     CREATE_DISK_GPT Gpt;
-  };
+  } DUMMYUNIONNAME;
 } CREATE_DISK,*PCREATE_DISK;
 
 typedef struct _GET_LENGTH_INFORMATION {
@@ -583,7 +583,7 @@
   __MINGW_EXTENSION union {
     PARTITION_INFORMATION_MBR Mbr;
     PARTITION_INFORMATION_GPT Gpt;
-  };
+  } DUMMYUNIONNAME;
 } PARTITION_INFORMATION_EX,*PPARTITION_INFORMATION_EX;
 
 typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
@@ -603,7 +603,7 @@
   __MINGW_EXTENSION union {
     DRIVE_LAYOUT_INFORMATION_MBR Mbr;
     DRIVE_LAYOUT_INFORMATION_GPT Gpt;
-  };
+  } DUMMYUNIONNAME;
   PARTITION_INFORMATION_EX PartitionEntry[1];
 } DRIVE_LAYOUT_INFORMATION_EX,*PDRIVE_LAYOUT_INFORMATION_EX;
 
@@ -637,8 +637,8 @@
     __MINGW_EXTENSION struct {
       DISK_INT13_INFO Int13;
       DISK_EX_INT13_INFO ExInt13;
-    };
-  };
+    } DUMMYSTRUCTNAME;
+  } DUMMYUNIONNAME;
 } DISK_DETECTION_INFO,*PDISK_DETECTION_INFO;
 
 typedef struct _DISK_PARTITION_INFO {
@@ -652,7 +652,7 @@
     struct {
       GUID DiskId;
     } Gpt;
-  };
+  } DUMMYUNIONNAME;
 } DISK_PARTITION_INFO,*PDISK_PARTITION_INFO;
 
 #define DiskGeometryGetPartition(Geometry) ((PDISK_PARTITION_INFO)((Geometry)->Data))
@@ -691,7 +691,7 @@
       WORD Minimum;
       WORD Maximum;
     } BlockPrefetch;
-  };
+  } DUMMYUNIONNAME;
 } DISK_CACHE_INFORMATION,*PDISK_CACHE_INFORMATION;
 
 typedef struct _DISK_GROW_PARTITION {
@@ -1579,9 +1579,9 @@
       BYTE BirthVolumeId[16];
       BYTE BirthObjectId[16];
       BYTE DomainId[16];
-    };
+    } DUMMYSTRUCTNAME;
     BYTE ExtendedInfo[48];
-  };
+  } DUMMYUNIONNAME;
 } FILE_OBJECTID_BUFFER,*PFILE_OBJECTID_BUFFER;
 
 typedef struct _FILE_SET_SPARSE_BUFFER {
diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
index 96742eb..d2f50c6 100644
--- a/mingw-w64-headers/include/winnt.h
+++ b/mingw-w64-headers/include/winnt.h
@@ -3224,7 +3224,7 @@
       __MINGW_EXTENSION union {
 	PVOID FiberData;
 	DWORD Version;
-      };
+      } DUMMYUNIONNAME;
       PVOID ArbitraryUserPointer;
       struct _NT_TIB *Self;
     } NT_TIB;
@@ -3239,7 +3239,7 @@
       __MINGW_EXTENSION union {
 	DWORD FiberData;
 	DWORD Version;
-      };
+      } DUMMYUNIONNAME;
       DWORD ArbitraryUserPointer;
       DWORD Self;
     } NT_TIB32,*PNT_TIB32;
@@ -3252,7 +3252,7 @@
       __MINGW_EXTENSION union {
 	DWORD64 FiberData;
 	DWORD Version;
-      };
+      } DUMMYUNIONNAME;
       DWORD64 ArbitraryUserPointer;
       DWORD64 Self;
     } NT_TIB64,*PNT_TIB64;
@@ -4624,7 +4624,7 @@
       __MINGW_EXTENSION union {
 	DWORD VirtualAddress;
 	DWORD RelocCount;
-      };
+      } DUMMYUNIONNAME;
       DWORD SymbolTableIndex;
       WORD Type;
     } IMAGE_RELOCATION;
@@ -5094,7 +5094,7 @@
       __MINGW_EXTENSION union {
 	DWORD Characteristics;
 	DWORD OriginalFirstThunk;
-      };
+      } DUMMYUNIONNAME;
       DWORD TimeDateStamp;
 
       DWORD ForwarderChain;
@@ -5132,17 +5132,17 @@
 	__MINGW_EXTENSION struct {
 	  DWORD NameOffset:31;
 	  DWORD NameIsString:1;
-	};
+	} DUMMYSTRUCTNAME;
 	DWORD Name;
 	WORD Id;
-      };
+      } DUMMYUNIONNAME;
       __MINGW_EXTENSION union {
 	DWORD OffsetToData;
 	__MINGW_EXTENSION struct {
 	  DWORD OffsetToDirectory:31;
 	  DWORD DataIsDirectory:1;
-	};
-      };
+	} DUMMYSTRUCTNAME2;
+      } DUMMYUNIONNAME2;
     } IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY;
 
     typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {
@@ -5328,7 +5328,7 @@
       __MINGW_EXTENSION union {
 	ULONGLONG EndOfPrologue;
 	ULONGLONG UnwindInfoAddress;
-      };
+      } DUMMYUNIONNAME;
     } IMAGE_FUNCTION_ENTRY64,*PIMAGE_FUNCTION_ENTRY64;
 
     typedef struct _IMAGE_SEPARATE_DEBUG_HEADER {
diff --git a/mingw-w64-headers/include/winuser.h b/mingw-w64-headers/include/winuser.h
index 9557056..f2929f6 100644
--- a/mingw-w64-headers/include/winuser.h
+++ b/mingw-w64-headers/include/winuser.h
@@ -2299,7 +2299,7 @@
       MOUSEINPUT mi;
       KEYBDINPUT ki;
       HARDWAREINPUT hi;
-    };
+    } DUMMYUNIONNAME;
   } INPUT,*PINPUT,*LPINPUT;
 
   WINUSERAPI UINT WINAPI SendInput(UINT cInputs,LPINPUT pInputs,int cbSize);
@@ -5224,7 +5224,7 @@
       RID_DEVICE_INFO_MOUSE mouse;
       RID_DEVICE_INFO_KEYBOARD keyboard;
       RID_DEVICE_INFO_HID hid;
-    };
+    } DUMMYUNIONNAME;
   } RID_DEVICE_INFO,*PRID_DEVICE_INFO,*LPRID_DEVICE_INFO;
 
 #define GetRawInputDeviceInfo __MINGW_NAME_AW(GetRawInputDeviceInfo)
diff --git a/mingw-w64-headers/include/wtypes.h b/mingw-w64-headers/include/wtypes.h
index df00b9a..2805cbd 100644
--- a/mingw-w64-headers/include/wtypes.h
+++ b/mingw-w64-headers/include/wtypes.h
@@ -548,7 +548,7 @@
     __MINGW_EXTENSION struct {
       unsigned long Lo;
       long Hi;
-    };
+    } DUMMYSTRUCTNAME;
     LONGLONG int64;
   } CY;
 #endif
@@ -561,17 +561,17 @@
       __MINGW_EXTENSION struct {
 	BYTE scale;
 	BYTE sign;
-      };
+      } DUMMYSTRUCTNAME;
       USHORT signscale;
-    };
+    } DUMMYUNIONNAME;
     ULONG Hi32;
     __MINGW_EXTENSION union {
       __MINGW_EXTENSION struct {
 	ULONG Lo32;
 	ULONG Mid32;
-      };
+      } DUMMYSTRUCTNAME2;
       ULONGLONG Lo64;
-    };
+    } DUMMYUNIONNAME2;
   } DECIMAL;
 #define DECIMAL_NEG ((BYTE)0x80)
 #define DECIMAL_SETZERO(dec) {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}
